Java 一個階乘求和的問題
阿新 • • 發佈:2019-01-11
在java2實用教程書上找的基礎題,一天一題,今天的題目是關於階乘求和的。題目如下:編寫應用程式求:1!+2!+3!+4!+5!+6!+7!+8!+9!+10!。求解這道題目的思路是,使用for迴圈計算從1到10每一個數字的階乘的結果,然後使用一個sum變數求和得到最後的結果。程式碼如下:
public class Qiuhe {
public static void main(String[] args){
int i ;
int x = 1;
int sum = 0;
for(i = 1;i <= 10;i ++){
x = x * i; //x保留上一次階乘的結果
sum = sum + x; //每次階乘之後都相加
}
System.out.println("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!="+sum);
}
}
我覺得這是比較簡單的一種方法,還可以使用兩個迴圈來做,但是時間複雜度比這個方法大。程式碼如下:還可以使用遞迴的方法來做,程式碼就不貼出來了。public class He{ public static void main(String[] args){ int i ; int j ; int sum = 0; for(i = 1;i <= 10;i ++){ int x = 1; for(j = 1;j <= i;j++){ x = j*x; } sum = sum + x; } System.out.println("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!="+sum); } }
(Day2)