1. 程式人生 > >Java 一個階乘求和的問題

Java 一個階乘求和的問題

在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)