funktion mit rekursion berechnen



  • Hallo Leute,
    ich versuche eine funktion mit rekursion zu berechnen aber habe ich schwierigkeit

    F(n)=2*F(n-1)+F(n-2)*F(n-3); wo F(0)= F(1)= F(2) =1
    ich habe versucht, aber zu lösung komme ich nicht

    #include <iostream>
    using namespace std;
    
    int f(int n){
    
    	for(int i = 3; i <= n; i++){
    		f(0) = 1;
    		f(1) = 1;
    		f(2) = 1;
    		return f(n) = 2*f(n-1) + f(n-2)*f(n-3);
    
    	}
    }
    
    int main(){
    	cout << f(6);
    	return 0;
    
    }
    

    oder so

    #include <iostream>
    using namespace std;
    
    int f(int n){
    	if(n>=0 && n<=2){
    	return 1;
    	}else
    	{
    
    	for(int i = 3; i <= n; i++){
    		f(0) = 1;
    		f(1) = 1;
    		f(2) = 1;
    		return f(n) = 2*f(n-1) + f(n-2)*f(n-3);
    
    	}
    }
    }
    
    int main(){
    	cout << f(6);
    	return 0;
    
    }
    

    ihr seid mir wirklich sehr hilfreich und lerne viel durch eure Tipps
    danke vielmals



  • nata schrieb:

    Hallo Leute,
    ich versuche eine funktion mit rekursion zu berechnen aber habe ich schwierigkeit

    F(n)=2*F(n-1)+F(n-2)*F(n-3); wo F(0)= F(1)= F(2) =1
    ich habe versucht, aber zu lösung komme ich nicht

    #include <iostream>
    using namespace std;
    
    int f(int n){
    	
    	
    	
    	for(int i = 3; i <= n; i++){
    		f(0) = 1;
    		f(1) = 1;
    		f(2) = 1;
    		return f(n) = 2*f(n-1) + f(n-2)*f(n-3);
    		
    		
    	}
    }
    
    int main(){
    	cout << f(6);
    	return 0;
    	
    }
    

    oder so

    #include <iostream>
    using namespace std;
    
    int f(int n){
    	if(n>=0 && n<=2){
    	return 1;
    	}else
    	{
    	
    	for(int i = 3; i <= n; i++){
    		
    		return f(n) = 2*f(n-1) + f(n-2)*f(n-3);
    		
    		
    	}
    }
    }
    
    int main(){
    	cout << f(6);
    	return 0;
    	
    }
    

    ihr seid mir wirklich sehr hilfreich und lerne viel durch eure Tipps
    danke vielmals



  • nata schrieb:

    return f(n) = 2*f(n-1) + f(n-2)*f(n-3);
    

    Ich tippe mal, der Fehler liegt in dieser Zeile.



  • ich habe auch so versucht

    f(n) = 2*f(n-1) + f(n-2)*f(n-3);
    return f(n);
    

    aber funktioniert nicht. sonst sehe ich keinen fehler da



  • du kannst doch nicht einfach matheformeln 1:1 reinkleistern ?!?

    #include <iostream>
    
    int f(unsigned int n)
    {
        if (n < 3) return 1;
    
        return 2 * f(n-1) + f(n-2) * f(n-3);      
    }
    
    int main()
    {
        std::cout << f(6);
    }
    

    Und warum fullquotest du dich selbst? lösch das mal!



  • Und warum diese for-Schleife?



  • ich habe mir gedacht wo es F0, F1 und F2 bekannt sind wurde ich dadurch F3 berechnen usw bis Fn, desswegen habe ich in neben return Fn= geschrieben. Ich muss anscheinend besser nochlesen was genau rekursion macht. Auf jedenfall hilft mir sehr eure hilfe und bin ich sehr dankbar



  • nata schrieb:

    ich habe mir gedacht wo es F0, F1 und F2 bekannt sind wurde ich dadurch F3 berechnen usw bis Fn, desswegen habe ich in neben return Fn= geschrieben. Ich muss anscheinend besser nochlesen was genau rekursion macht.

    Nein.
    Dein Problem hat mit Rekursion nicht das geringste zu tun.

    Du musst mal C++ lernen.
    Du kannst nicht einfach *irgendwas* hinschreiben und dann erwarten dass es C++ ist.

    Back mir mal nen Kuchen Combudda!!!11
    

    Warum geht das nicht?



  • hustbaer schrieb:

    nata schrieb:

    ich habe mir gedacht wo es F0, F1 und F2 bekannt sind wurde ich dadurch F3 berechnen usw bis Fn, desswegen habe ich in neben return Fn= geschrieben. Ich muss anscheinend besser nochlesen was genau rekursion macht.

    Nein.
    Dein Problem hat mit Rekursion nicht das geringste zu tun.

    Du musst mal C++ lernen.
    Du kannst nicht einfach *irgendwas* hinschreiben und dann erwarten dass es C++ ist.

    Back mir mal nen Kuchen Combudda!!!11
    

    Warum geht das nicht?

    sehr freundlich


Anmelden zum Antworten