Store tal
Først og fremmest - undskyld for den ikke så gode titel, men jeg kunne ikke komme på noget bedre.Og nu til mit spørgsmål:
Jeg har skrevet dette program
#include <iostream>
using namespace std;
int main (int argc, const char * argv[]) {
int i = 1;
int c = 0;
char ch ='n';
unsigned int n1 = 1;
unsigned int n2 = 0;
unsigned int nc = 1;
float ratio = 0.0;
cout<<"Fibbonachi number generator."<<endl<<"How many numbers to generate? ";
cin>>c;
if(c>47){
cout<<c<<" is too large a value, defaulting to 45."<<endl<<" Continue?(y/n)";
cin>>ch;
if((ch == 'n') || (ch == 'N')){
cout<<"Exiting..."<<endl;
return 0;}
else
c = 45;
}
while(i<=c){
nc = n1 + n2;
ratio = (float)nc / (float)n2;
cout<<i<<". "<<nc<<" | Ratio: "<<nc<<" / "<<n2<<" = "<<ratio<<endl;
n1 = n2;
n2 = nc;
i++;
}
return 0;
}
Det er til udregning af fibbonachi (Stavning?) tal, og det virker fint men, som i kan se har jeg en lille del af programmet der stopper c variablen fra at blive større en 47, den har jeg fordi hvis tallet bliver større end 47 bliver tallet i nc variablen størren end hvad der kan være i en unsigned int, mit spørgsmål er nu - er der en måde hvor man kan 'bygge' store tal? Altså tal der i teorien kan være så store som man har lyst til? Min plan med programmet var nemmelig at lave det om til en function hvar man kan finde n'te tal i fibbonachi sekvensen, altså noget ala fibbo(n), sådan så man kan regne med dem, min plan var at bruge del til seeding af tilfældigheds generatorer og sådan. Og før i siger noget jeg ved de også er begrænset af tal størrelsen.
Noget idelt var hvis det kunne være en klasse, som har overloadede operatorer i hvert fald +,-,*, /,% og =, må også gerne understytte +=, -=, ++ og --.
Links er gyldige svar, gerne nogen hvor koden der henvises til forklares. Og så en ting mere - det skal helst være OS uafhængigt. Eller i det mindste kunne compiles på Mac OSX og Win2k.
På forhånd tak.