2016-04-12 15 views
0

Ev ödevi için şu sorum var: İlk n pozitif tamsayıların faktörlerinin toplamını hesaplamak için bir program yazın. Şimdiye kadar yapmış olduğum şey budur ama almam gereken çıktıyı alamıyorum. Birisi bana neyi yanlış yaptığımı söyleyebilir mi?İlk n pozitif tamsayıların faktörlerinin toplamını hesaplamak için bir program yazabilir misiniz?

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

gibi bir "yanlış" giriş engellemez. –

+2

Ayrıca, bu [http://stackoverflow.com/questions/3905658/factorial-method-doesnt-work-well) dikkat edin. – aioobe

cevap

0

Ben örneğin, bu önermek:

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);  
} 

ben yardımcı olur.

0

bu deneyin:

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 while-giriş çarpınımını hesaplamak için 1. sonra küçük Dahası, satır doğru değil ise döngüler, girdi ve tekrarlar için kullanıcı sorar, sanırım .

Not: Bu örnek ben faktöriyel'dir hesaplamak için bir yöntem yazarak başlamak istiyorum 12.5

+0

Açıklama olmadan kod dökümü yararlı değildir: cevabınızla göstermeye çalıştığınız şeyi açıklayın. –

+0

@Andy Bir açıklama için satırları ekledim. – Martin

İlgili konular