第四次循環i=2*5-1=9 ,這樣7!沒計算,再下次循環就是i=2*9-1=17,更加錯了
(2)計算i!的循環有問題,僅是i=i*j是有問題,如第二次循環中i=3,j=j*i=1*3,3!應該是1×2×3
(3)階乘的數值很大,不能用int類型保存,比例中可以使用long 類型保存結果。
public static void main(String[] args)
{
long j=1,sum=1;
for(int i=3;i<=19;i+=2)
{
j=j*(i-1)*i;
sum=sum+j;
System.out.println(""+i+"!="+j);//這句話可以用於輸出中間的階乘,不需要可註釋掉
}
System.out.println("sum="+sum);
}
輸出如下:
3!=6
5!=120
7!=5040
9!=362880
11!=39916800
13!=6227020800
15!=1307674368000
17!=355687428096000
19!=121645100408832000
sum=122002101778601647