2016-04-12 11 views
0

私は宿題についてこの質問があります:最初のn正の整数の階乗和を計算するプログラムを書いてください。 これまで行ってきたことですが、私が得なければならない出力は得られません。誰かが私に何が間違っているか教えてもらえますか?最初のn正の整数の階乗和を計算するプログラムを作成しますか?

System.out.print("Enter a number: "); 
int num=input.nextInt(); 

for (int i=1; i<=num; i++) { 
    num=num+i;   
} 
System.out.print(num); 
+3

のような「間違った」の入力を防ぐことはできません。 –

+2

また、[this](http://stackoverflow.com/questions/3905658/factorial-method-doesnt-work-well)に注意してください。 – aioobe

答えて

0

私には、例えば、これをお勧め:

public static void main(String... args){ 
    int n=10; 
    BigInteger j=BigInteger.valueOf(1); 
    BigInteger k=BigInteger.valueOf(0); 
    for(int i=0;i<n;i++){ 
     j=j.multiply(BigInteger.valueOf(i+1)); 
     k=k.add(j); 
     //System.out.println(j + "\t" + k); 
    } 
    System.out.println("Sum of " + n + " first factorials equals: " + k);  
} 

私はそれが役に立てば幸い。

0

このお試しください:ループが入力をユーザに要求し、繰り返し入力が1より小さい場合は、さらに、階乗を計算するために、あなたの行は、私は推測し、正しくない

int n, c, fact = 1; 
do { 
    System.out.println("Please enter a positive integer."); 
    n = input.nextInt(); 
} while (n < 1); 
    for (c = 1 ; c <= n ; c++) { 
     fact = fact*c; 
    } 
    System.out.println("Factorial of "+n+" is = "+fact); 
} 

ながらDOを、 。

注:この例では、私は階乗を計算するメソッドを記述することから始めたい12.5

+0

説明のないコードダンプは役に立たない:回答で表示しようとしていることを説明する。 –

+0

@Andy説明のために行を追加しました。 – Martin

関連する問題