Cplusplus Programmierung
ich möchte dieses sogenante "Sissa ibn Dahir" bei Cplusplus programmieren
unten nähere erklärt
also es geht um ein schachbrett das 64 felder hat, auf jedem brett beliebige reiskörner sind, und je nach feld es die reiskörner quadriert werden d.h.
Die Berechnung der Anzahl der Weizenkörner erfolgt folgendermaßen:
1 + 2 + 4 + 8 + ... = 2^0 + 2^1 + 2^2 + 2^3 + ... + 2^63 ( ^ bedeutet hochzahl, nur zur info)
Auf allen Feldern zusammen wären es 264−1 oder 18.446.744.073.709.551.615 Weizenkörner
und würde normalerweise mit einer while schleife programmieren da ich das eher kann als andere schleifen.
habe den grundgerüst schonma gebaut:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
double koerner
double feld
double eingabe
cout << " Geben sie eine feldzahl ein auf der sie wissen möchten wie viele koerner auf dem beliebigem feld sind: " << endl;
cin >> eingabe;
-- --| - -- -- |- --- -- - - -- -- |-- -- - - -- -- - - --|
cout<< " auf dem " << eingabe << " . ten feld sind: " << koerner << " koerner! " << endl;
}
getch;
return 0;
}
auf das letzte cout war nur mal so das ich weis was am ende rauskommen muss, da wo ich den strich gemacht hab in der mitte, da muss noch meine codierung rein, bin aber noch am überlegen wie ich das tun soll, kann mir jemand helfen??
danke....
unten nähere erklärt
also es geht um ein schachbrett das 64 felder hat, auf jedem brett beliebige reiskörner sind, und je nach feld es die reiskörner quadriert werden d.h.
Die Berechnung der Anzahl der Weizenkörner erfolgt folgendermaßen:
1 + 2 + 4 + 8 + ... = 2^0 + 2^1 + 2^2 + 2^3 + ... + 2^63 ( ^ bedeutet hochzahl, nur zur info)
Auf allen Feldern zusammen wären es 264−1 oder 18.446.744.073.709.551.615 Weizenkörner
und würde normalerweise mit einer while schleife programmieren da ich das eher kann als andere schleifen.
habe den grundgerüst schonma gebaut:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
double koerner
double feld
double eingabe
cout << " Geben sie eine feldzahl ein auf der sie wissen möchten wie viele koerner auf dem beliebigem feld sind: " << endl;
cin >> eingabe;
-- --| - -- -- |- --- -- - - -- -- |-- -- - - -- -- - - --|
cout<< " auf dem " << eingabe << " . ten feld sind: " << koerner << " koerner! " << endl;
}
getch;
return 0;
}
auf das letzte cout war nur mal so das ich weis was am ende rauskommen muss, da wo ich den strich gemacht hab in der mitte, da muss noch meine codierung rein, bin aber noch am überlegen wie ich das tun soll, kann mir jemand helfen??
danke....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128269
Url: https://administrator.de/contentid/128269
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
7 Kommentare
Neuester Kommentar
@echo OFF
@ NO HALLO
Hallo Goekhan43,
ich habe mir deinen mittleren Strich (den dritten von rechts) genommen und komme
auf was ganz simples:
Hab ich den richtigen Strich gewählt?
Gruß
Tsuki
Ps.: mein Beispiel zum Probieren als VBS. Du musst das nur noch "konvertieren" nach C++
@ NO HALLO
Hallo Goekhan43,
ich habe mir deinen mittleren Strich (den dritten von rechts) genommen und komme
auf was ganz simples:
for i = 0 to 64
Variable = 2^i
next
Hab ich den richtigen Strich gewählt?
Gruß
Tsuki
Ps.: mein Beispiel zum Probieren als VBS. Du musst das nur noch "konvertieren" nach C++
Hi !
[ot]
...und um andere Flugzeuge nicht zu streifen, fliege ich nur Backbordschleifen...sagte der Pilot in seiner Not.
[/ot]
mrtux
[ot]
...und um andere Flugzeuge nicht zu streifen, fliege ich nur Backbordschleifen...sagte der Pilot in seiner Not.
[/ot]
mrtux
[quote]
, und je nach feld es die reiskörner quadriert werden
[/quote]
[quote]
Die Berechnung der Anzahl der Weizenkörner
[/quote]
Die Lösung ist einfach: Solange du nur Reiskörner auf das Schachbrett legst wird die Anzahl an WEIZENKÖRNERN auf dem Brett immer 0 sein. Geht ganz ohne Schleife...
Ansonsten: Du hast bisher nen cin und nen cout - keine Berechnung oder sonstwas... Du hast bei allen double .... kein ; drin und deine Main-Funktion ist kein
public static void main (args)
Mein c++ liegt lange zurück - aber das dir der Compiler DAS nicht gleich wieder vor die Füße gerotzt hat das kann ich mir grad nicht vorstellen...
, und je nach feld es die reiskörner quadriert werden
[/quote]
[quote]
Die Berechnung der Anzahl der Weizenkörner
[/quote]
Die Lösung ist einfach: Solange du nur Reiskörner auf das Schachbrett legst wird die Anzahl an WEIZENKÖRNERN auf dem Brett immer 0 sein. Geht ganz ohne Schleife...
Ansonsten: Du hast bisher nen cin und nen cout - keine Berechnung oder sonstwas... Du hast bei allen double .... kein ; drin und deine Main-Funktion ist kein
public static void main (args)
Mein c++ liegt lange zurück - aber das dir der Compiler DAS nicht gleich wieder vor die Füße gerotzt hat das kann ich mir grad nicht vorstellen...
Hi Goekhan43,
du brauchst doch pro Schleifendurchlauf die Anzahl Reiskörner nur zu addieren:
Gruß
Günni
du brauchst doch pro Schleifendurchlauf die Anzahl Reiskörner nur zu addieren:
int _tmain(int argc, _TCHAR* argv)
{
double korn=1;
double feld=0;
int i=0;
int eingabe=0;
do
scanf("%d",&eingabe);
while(eingabe<=0 || eingabe>64);
for(i=0;i<eingabe;i++){
feld+=korn; /* Gesamtzahl Reiskörner addieren */
printf("Feld %2d %37.0f\n",i+1,korn);
korn+=korn; /* Körner Feld für Feld addieren */
}
printf("\nZusammen: %35.0f Reiskoerner\n\n",feld);
return 0;
}
Gruß
Günni