2017-01-07 4 views
0

Sie erhalten die Summe 1 + (1 + 3)/2 + (1 + 3 + 5)/4 + ... + (2.n-1)/2^(n-1). Sie sollten ein Programm kompilieren, das (integer N) den Wert der Summe zum N-ten Summanden findet und anzeigt.Ermittlung einiger Summe

Ich habe einen Code geschrieben, aber ich kann die Formel nicht herausfinden ... Hilfe?

Hier ist mein Code:

Scanner input = new Scanner(System.in); 

System.out.print("n = "); 
int n = input.nextInt(); 
double sum = 0; 

for(int i = 1; i <= n; i++) { 
    sum = sum + (2 * i - 1)/(Math.pow(2, i - 1)); 
} 

System.out.println(sum); 
+2

'2 * n sein - 1 'macht keinen Sinn für mich machen ... es ist nicht vor, dass mit dem Begriff übereinstimmen, nicht wahr? – torkleyy

+2

"1 + 3 = 4" 1 + 3 + 5 = 9 "1 + 3 + 5 + 7 = 16" 1 + 3 + 5 + 7 + 9 = 25 "..." 4 "9" '16'' 25' ... siehst du das Muster? – Pshemo

+1

Pshemo zeigt hier gute Technik. Wenn Sie ein Problem vollständig von Hand lösen, können sich häufig Muster ergeben, die aus der grundlegenden Beschreibung oder aus Formeln nicht ersichtlich sind. – markspace

Antwort

1

Nach Pshemo der Mitteilung, dass 1 + 3 + 5 + ... + n = (n-1)^2, dann wird die Formel

sein

enter image description here

Und Ihr Code

Scanner input = new Scanner(System.in); 

System.out.print("n = "); 
int n = input.nextInt(); 
double sum = 0; 

for(int i = 1; i <= n; i++) { 
    sum += 2 * Math.pow(i, 2)/Math.pow(2, i); 
} 

System.out.println(sum); 
+0

Ah ja :) in der Formel sollte es ich anstelle von n sein. Sie haben Recht! Vielen Dank! –

Verwandte Themen