C++ Produktzeichen ineinander verschachteln?
Hallo,
ich habe die von mir selbst ausgedachte Aufgabe als Bild hinzugefügt.
Ziel ist es dies anhand eines C++ Programms auszurechnen.
Ich habe es bisher nicht geschafft dies zu realisieren.
Mein bisher bester Versuch ignoriert vollständig die äußere Schleife.
Natürlich ist die Aufgabe nicht völlig aus der Luft gegriffen. Aufgaben in dem Stil kamen schonmal in Klausuren vor.
2 Antworten
int result = 1;
for(int k=1; k<=5; k++){
for(int i=1; i<=4; i++){
result *= 2*k*i;
}
}
Es kommen mehrere Ergebnisse bei dir raus.
Der Datentyp ist zu klein. Nimm nicht int, sondern etwas größeres.
Zum Beispiel long long.
long long result = 1;
for(int k=1; k<=5; k++){
for(int i=1; i<=4; i++){
result *= 2*k*i;
}
}
Selbst long long ist zu klein, anscheinend.
Du bist dir sicher, dass das richtig ist? Würde es in meine Formelsammlung rein nehmen.
Wie kann ich dafür sorgen, dass nicht jedes Zwischenergebnis angezeigt wird sondern nur das Endergebnis?
Es ist ja mit in der Schleife und wird daher jedesmal mit ausgegeben. Mache ich es außerhalb ist der Wert 0.
Dann zeig mal deinen kompletten Code. Rätselraten hilft hier nicht weiter.
#include
using namespace std;
int main()
{
long long result = 1;
for(int k=1; k<=5; k++){
for(int i=1; i<=4; i++){
result *= 2*k*i;
cout << result << endl;
}}
system("PAUSE");
return 0;
}
int main() {
long long result = 1;
for(long long k=1; k<=5; k++){
for(long long i=1; i<=4; i++){
result *= 2*k*i;
}
}
cout << result << endl;
system("PAUSE");
return 0;
}
Probiers mal so.
Kommt aufjedenfall nur ein Ergebnis bei raus. Mit unsigned vor den longs auch was gescheites.
1.001.929.970.810.880 sollte herauskommen, wenn ich mich nicht vertan habe.
Hab mich wohl vertan. WolframAlpha sagt 1.731.334.989.561.200.640.000
Bekomme hier was anderes: 15787790706212339712
int gesamtErgebnis = 1;
int unterErgebnis;
for(int k = 1;k <= 5; k++)
{
unterErgebnis = 1;
for(int i = 1; i <= 4; i++)
{
unterErgebnis = unterERgebnis * 2 * k * i;
}
gesamtErgebnis = gesamtErgebnis * unterERgebnis;
}
Ergebnis: gesamtErgebnis
...hoffe ich habe das Produktzeichen richtig interpretiert (hab das noch nie in Mathe benutzt^^)
Ich bin am überlegen weshalb du gesamtErgebnis benutzt.
hmm vielleicht braucht man auch nur eine variable ...bin zu dumm um das ohne ausprobieren herauszufinden. (bin zurzeit nicht am PC)
Die Ausgabe passt nicht.