Schachbrett mit Reiskörner
-
Hey Leute..
Ich bräuchte mal eure Hilfe.
Ich habe ein Programm geschrieben, dass wie gefolgt lautet..[cli]#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()cout << "Schachbrett mit Reiskoerner" << endl;
cout << endl;cout << "Geben sie eine Zahl ein: " << endl;
cin >> eingabe;
cout << endl;{
unsigned long long a,b;b=1;
for(a=1;a<65;a++)
{
if(a==1)
{
cout << "Zwischenergebnisse: " << z3 << endl;
}
else
{
cout<<a;
cout<<"\t";
b=b*2;
cout<<b<<"\n";
}
}
cout << "Ihr Ergebnis: " << z3 << endl;
cout << endl;cout << "Programm wird beendet!!!" << endl;
getch();
}Diese Programm funktioniert, aber meine Frage ist ob man dieses Programm auch anderst schreiben kann, denn ich bekomme nur diese Variante hin.
Es wäre wirklich nett, wenn mir jemand helfen würde.Die Programmierung soll ein Schachbrett sein mit den bekannten Reiskörnersystem. Ich hoffe ihr versteht was ich meine.
-
Was meinst du mit "aber meine Frage ist ob man dieses Programm auch anderst schreiben kann"?
-
Hey sorry erst mal das ist das falsche Programm von mir wo ich herum getestet habe.
Das hier ist funktionierende...
#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()
{
unsigned long long x,y,z;y=1;
for(x=1;x<65;x++)
{
if(x==1)
{
cout<<"1\t1"<<"\n";
}
else
{
cout<<x;
cout<<"\t";
y=y*2;
cout<<y<<"\n";
}
}
getch();
}Ich frag mich einfach nur ob es auch andere varianten es gibt dieses Programm zu schreiben.
-
Glückskeks schrieb:
Diese Programm funktioniert, aber meine Frage ist ob man dieses Programm auch anderst schreiben kann
Ja, es gibt da wohl mehrere Möglichkeiten.
cin >> eingabe; cout << "Reiskoernersumme insgesamt: " << (1ull<<eingabe)-1 << endl;
-
Erst mal heißt es nicht
#include<iostream.h> #include<conio.h> #include<math.h>
sondern
#include <iostream> ...
das ".h" ist veraltet!
Klar gibt es mehrerer möglichkeiten dein Programm zu schreiben.
-
z. B. so:
long long x; for(int i=0; i<64; i++) { x = 2 << i; cout << x << endl; }
-
curry-king schrieb:
long long x; for(int i=0; i<64; i++) { x = 2 << i; cout << x << endl; }
Du meintest wohl
1 << i
undcout << (i+1) << '\t' << x << '\n';
-
Oder auch:
cout << "18446744073709551615" << endl;
-
Sebastian Pizer schrieb:
curry-king schrieb:
long long x; for(int i=0; i<64; i++) { x = 2 << i; cout << x << endl; }
Du meintest wohl
1 << i
undcout << (i+1) << '\t' << x << '\n';
Ehm, oh, ähh, ja meinte ich!
-
Hey könnte jemand in dieses Programm eine While-Schleife einbauen ???
-
Glückskeks schrieb:
Hey könnte jemand in dieses Programm eine While-Schleife einbauen ???
Klar. Aber da gibt es viele Möglichkeiten.
Davor:
long long x; while(false) { } for(int i=0; i<64; i++) { x = 2 << i; cout << x << endl; }
Drin:
long long x; for(int i=0; i<64; i++) { while(false) { } x = 2 << i; cout << x << endl; }
Danach:
long long x; for(int i=0; i<64; i++) { x = 2 << i; cout << x << endl; } while(false) { }
Drumherum:
while(true) { long long x; for(int i=0; i<64; i++) { x = 2 << i; cout << x << endl; } break; }
Man kann das auch kombinieren und zum Beispiel eine davor und eine danach machen. Der Fantasie sind keine Grenzen gesetzt. Mit genug while-Schleifen kann man sogar Muster malen. Wozu willst Du while drin haben.
-
sehr cool volkard
-
Ich müsste, dass Programm schreiben und mein Lehrer hat verlangen, dass wir eine While_schleife ienbauen müssen.
Und da war ich ehrlich gesagt überfordert !!Aber wollte mich bei dir bedanken, denn das hat mich weiter gebracht.
-
Glückskeks schrieb:
Ich müsste, dass Programm schreiben und mein Lehrer hat verlangen, dass wir eine While_schleife ienbauen müssen.
Und da war ich ehrlich gesagt überfordert !!Aber wollte mich bei dir bedanken, denn das hat mich weiter gebracht.
Du hast jetzt doch nicht etwa eins von volkards bsp. übernommen?
ps: falls du aus dtschl kommst, solltest du deine deutsch-kenntnisse dringend verbessern...bb
-
Glückskeks schrieb:
Aber wollte mich bei dir bedanken, denn das hat mich weiter gebracht.
volkard, ich bin mir sicher, dein Sarkasmus wird dir noch eines Tages zum Verhängnis!
-
Nexus schrieb:
Glückskeks schrieb:
Aber wollte mich bei dir bedanken, denn das hat mich weiter gebracht.
volkard, ich bin mir sicher, dein Sarkasmus wird dir noch eines Tages zum Verhängnis!
ich hoffe nicht, meist ist es ziemlich genial - das hier hat mich z.bsp. über ne extrem langweilige vorlesung hinweggerettet : D
bb
-
Nexus schrieb:
Glückskeks schrieb:
Aber wollte mich bei dir bedanken, denn das hat mich weiter gebracht.
volkard, ich bin mir sicher, dein Sarkasmus wird dir noch eines Tages zum Verhängnis!
Ich wundere mich, dass das nicht schon längst passiet ist..
(nimmt mich wunder, wie er so im RL dauf ist. :p, btw: Nexus, ans nächste Forentreffen gehen wir auch OK?)
-
Glückskeks schrieb:
Ich müsste, dass Programm schreiben und mein Lehrer hat verlangen, dass wir eine While_schleife ienbauen müssen.
Achso. Dann mein er bestimmt, daß nur eine while-Schleife genommen wird aber keine for-Schleife. Dazu schobst man den Initialisierungsausdruck vor die Schleife und den Weiterschaltungsausdruck ans Ende der Schleife.
Auslong long x; for(int i=0; i<64; i++) { x = 2 << i; cout << x << endl; }
wird dann
long long x; int i=0; while(i<64) { x = 2 << i; cout << x << endl; i++; }
-
Danke und ich wollte mich noch einmal für mein Deutsch entschuldigen
Also mein Programm seht jetzt wie gefolgt aus....
#include <iostream>
#include <conio.h>
#include <cmath>using namespace std;
int main()
{
long long x;
int i=0;
while(i<64) {
x = 2 << i;
cout << x << endl;
i++;
}cin.get();
return 0;
}Aber i-wie rechnet es falsch und alles 2-mal, vielleicht wei0 ja jemand von euch die Ursache, würde mich freuen.
-
Glückskeks schrieb:
Aber i-wie rechnet es falsch und alles 2-mal, vielleicht wei0 ja jemand von euch die Ursache, würde mich freuen.
Erklär doch mal, was diese Zeile macht:
x = 2 << i;
Wenn du das erklären kannst (und nicht nur abschreibst), dann hast du dein Problem gefunden und kannst es lösen.
P.S.: Was willst du mit cmath? Was willst du mit conio.h? Und kannst du mal bitte die cpp-Tags für deinen Code benutzen?