Fibonaccische Zahlenfolge....Werte negativ?...never



  • Hey Forumler,

    ich habe ein Programm geschrieben, welches eine Fibonaccische Zahlenfolge generiert.

    Hier der Code:

    #include "../../../std_lib_facilities.h"
    
    void print(const vector<int>& zahlen) //print () die Folgenglieder aus
    {	
    	int i = 0;
    	while(i<zahlen.size()){
    		cout<<zahlen[i]<<"\n";
            ++i;
    	}
    	keep_window_open();
    }
    
    void fibonacci(int x,int y,int n)
    {
    	vector<int>zahlen;
    	zahlen.push_back(x);
    	zahlen.push_back(y);
    
    	int i = 2;
    	while(zahlen.size()<=n){
    		zahlen.push_back(zahlen[i-2]+zahlen[i-1]); //die beiden vorherigen Zahlen miteinander addieren
    		++i;
    	}
    
    	print(zahlen); //Übergibt Vector an print()
    }
    
    int main(){
        int x = 1; //ertes Folgenglied
    	int y = 2; //zweites Folgenglied
    	int n = 0;
    	cout<<"Definiere n:";
    	cin>>n;
    	fibonacci(x,y,n);  //ruft fibonacci() auf
    }
    

    Der Code funktioniert, das ist nicht die Frage, aber was mich "wundert" ist etwas anderes:

    Wenn ihr den Code mal ausprobiert und z.b. n mit 100 am Anfang definiert, werden die Folegnglieder ab einer bestimmten Anzahl negativ..... :?: ......wie kann das sein, es werden doch immer zwei miteinander addiert, da kann ja nix negativ werden. Liegt das vielleicht daran, dass nicht genug Speicher zu Verfügung gestellt wird und dann einfach ein - vor den integer gesetzt wird?
    Was glaubt ihr?



  • Ja, ganz normaler Integer-Überlauf.


Anmelden zum Antworten