Witam wszystkich,
Od razu mówię, że jestem totalnym żółtodziobem, który rozpoczął przygodę z programowaniem w zeszłym tygodniu.
W ramach ćwiczeń napisałem sobie mały programik liczący ilość ziaren jaka znalazła by się na ostatnim polu szachownicy gdyby na każdym kolejnym znajdowała się liczba dwukrotnie większa niż na poprzednim (znana przypowieść o mędrcu i cesarzu).
Problem polega na tym, że program zlicza wartość jedynie do 30 pola czyli do wartości 1073741842, potem na polu 31 jest -2147483648 a następnie już same 0.
Proszę o podpowiedź jaką bibliotekę zastosować, zliczał powyżej tej liczby lub o krótkie wyjaśnienie zagadnienia.
Oto kod:
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int ziarenka=1, pole=0;
int main()
{
cout <<"Program zliczajcy ziarenka ryzu:"<<endl;
cout <<endl;
while(pole<=63)
{
Sleep(500);
pole++;
ziarenka = ziarenka *2;
cout <<"Numer pola: " <<pole <<", Ilosc ziarenek: "<<ziarenka <<"."<<endl;
}
getch();
return 0;
}
Dziękuję z góry za pomoc i życzę miłego dnia,
AC
unsigned long long
;-)