Zahlensumme (2) (Schleifen)
Berechnen Sie die folgenden Summen. Die Anwenderin soll die Zahlen m und n selbst eingeben können.
S1 = 12 + 22 + 32 + 42 + ... + (n-1)2 + n2
S2 = 13 + 23 + 33 + 43 + ... + (n-1)3 + n3
S3 = m + (m+1) + (m+2) + ... + (n-2) + (n-1) + n
Versuchen Sie, mit Hilfe des Internets, für jede Summe eine geschlossene Formel zu finden.
0 Kommentare
4 Lösung(en)
import java.util.Scanner;
/**
* Zahlsummen iterativ.
* @author Philipp Gressly (phi AT gressly DOT ch)
*/
public class Iterativ {
public static void main(String[] args) {
new Iterativ().top();
}
void top() {
s1();
s2();
s3();
}
void s1() {
int n;
n = lese("(S1) n");
long resultat = 0;
while(n > 0) {
resultat = resultat + n*n;
n = n - 1;
}
ausgabe("S1 = " + resultat);
}
void s2() {
int n;
n = lese("(S2) n");
long resultat = 0;
while(n > 0) {
resultat = resultat + n*n*n;
n = n - 1;
}
ausgabe("S2 = " + resultat);
}
void s3() {
int n, m;
m = lese("(S3) m");
n = lese("(S3) n");
long resultat = 0;
while(n >= m) {
resultat = resultat + m;
m = m + 1;
}
ausgabe("S3 = " + resultat);
}
void ausgabe(String meldung) {
System.out.println(meldung);
}
Scanner sc = new Scanner(System.in);
int lese(String meldung) {
System.out.println(meldung + ": ");
return sc.nextInt();
}
} // end of class Iterativ
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
import java.util.Scanner;
public class Explizit {
public static void main(String[] args) {
new Explizit().top();
}
void top() {
s1();
s2();
s3();
}
void s1() {
int n;
n = lese("(S1) n");
long resultat;
resultat = n * (n+1) * (2*n + 1) / 6;
ausgabe("S1 = " + resultat);
}
void s2() {
int n;
n = lese("(S2) n");
long resultat;
resultat = n * n * (n + 1) * (n + 1) / 4;
ausgabe("S2 = " + resultat);
}
void s3() {
int n, m;
n = lese("(S3) n");
m = lese("(S3) m");
long resultat;
resultat = (n+m) * (m - n + 1) / 2;
ausgabe("S3 = " + resultat);
}
void ausgabe(String meldung) {
System.out.println(meldung);
}
Scanner sc = new Scanner(System.in);
int lese(String meldung) {
System.out.println(meldung + ": ");
return sc.nextInt();
}
} // end of class Explizit
const N = 4, M = 12;
/*------------*\
| S U M M E 1 |
\*------------*/
function sum1_it(n) {
let sum = 0;
for (n; n > 0; n--) sum += n ** 2;
return sum;
}
// OEIS A000330
function sum1_fo(n) {
return n * (n+1) * (2*n + 1) / 6;
}
/*------------*\
| S U M M E 2 |
\*------------*/
function sum2_it(n) {
let sum = 0;
for (n; n > 0; n--) sum += n ** 3;
return sum;
}
// OEIS A000537
function sum2_fo(n) {
return (n * (n+1) / 2) ** 2;
}
/*------------*\
| S U M M E 3 |
\*------------*/
function sum3_it(n, m) {
let sum = 0;
for (m; m >= 0; m--) sum += n + m;
return sum;
}
// dreieckszahlenberechnung
function sum3_fo(n, m) {
return ((m+1) * n) + (m * (m+1) / 2);
}
/*----*\
| TEST |
\*----*/
console.log( sum1_it(N), sum1_fo(N) );
console.log( sum2_it(N), sum2_fo(N) );
console.log( sum3_it(N, M), sum3_fo(N, M) );
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
S1=lambda n: n*(n+1)*(2*n+1)//6
S2=lambda n: (n**2*((n+1)**2))//4
S3=lambda m,n: sum([m+i for i in range(0,n+1)])+sum([n-i for i in range(n-1,-1,-1)])
m,n=[int(i) for i in input('Bitte geben Sie die Zahlen m und n ein.(mit leerzeichen getrennt!) --> ').split()]
print(S1(n),S2(n),S3(m,n))
Lösung von: rob ert (tub)
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.5 |
Schwierigkeit: | k.A. |
Webcode: | 8thj-ygxd |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |