先开始我原本以为这个算法很简单,就是一个递归+for循环就OK了.
其实算法就是这么简单.
但是最后的结果遇到了问题,因为结果实在太大了.以至于long都装不下(20!好象都装不下)
所以用到了BigInteger类,在java.math里面.以后遇到类似的问题就有代码可以参考了...
ps:学习编程切记不要眼高手低.
import java.math.*;
public class From1to100jiecheng {
BigInteger var(int n){ //递归求阶乘的方法
if(n==1)
return BigInteger.valueOf(n);
return BigInteger.valueOf(n).multiply(var(n-1)); // n*var(n-1)
}
public static void main(String []args){
BigInteger Sum=BigInteger.valueOf(0);
From1to100jiecheng f1=new From1to100jiecheng();
for(int n=1;n<=100;n++)
Sum=Sum.add(f1.var(n));
System.out.println("1!+2!+3!+...+100!="+Sum);
}
}
其实算法就是这么简单.
但是最后的结果遇到了问题,因为结果实在太大了.以至于long都装不下(20!好象都装不下)
所以用到了BigInteger类,在java.math里面.以后遇到类似的问题就有代码可以参考了...
ps:学习编程切记不要眼高手低.
import java.math.*;
public class From1to100jiecheng {
BigInteger var(int n){ //递归求阶乘的方法
if(n==1)
return BigInteger.valueOf(n);
return BigInteger.valueOf(n).multiply(var(n-1)); // n*var(n-1)
}
public static void main(String []args){
BigInteger Sum=BigInteger.valueOf(0);
From1to100jiecheng f1=new From1to100jiecheng();
for(int n=1;n<=100;n++)
Sum=Sum.add(f1.var(n));
System.out.println("1!+2!+3!+...+100!="+Sum);
}
}










