问题:
求1到20的阶乘的和
代码:
Test.java
public class Test {
public static void main(String[]args)
{
JiechengAdd jisuan=new JiechengAdd();
jisuan.add(20);
}
}
JiechengAdd.java
public class JiechengAdd {
public void add(int num){
long sum=0L,jiecheng=1L;
for(int i=1;i<=num;i++){
jiecheng=jiecheng*i;
sum=sum+jiecheng;
}
System.out.println("the result is: "+sum);
}
}
运行结果:
总结:
开始向运用两个循环,先用一个循环把阶乘算出来,再用一个循环算总和,结果发现这样很麻烦,不如直接从小的开始算起,一个循环都加在一起。
阶乘求和的结果太大了,导致一开始算阶乘的时候定义的和还有阶乘都是int型,结果算出来的结果是错误的显示所以改成了long型。