drucken fibonacci-Reihe mit Hilfe der Rekursion in c++
Ich gerade angefangen zu lernen, c++ von mir. Ich bin versucht zu üben recusion jetzt. Will ich drucken alle n(Eingabe von Benutzer) fibonacci-zahlen mittels Rekursion, aber es funktioniert nicht. Könnten Sie mir helfen? Danke!!!!
#include <iostream>
using namespace std;
int fibonacci(int n)
{
if (n==1)
{
return 1;
cout<<1<<" ";
}
else if (n==2)
{
return 1;
cout<<1<<" ";
}
else
{
return (fibonacci(n-1)+fibonacci(n-2));
cout<<fibonacci(n-1)+fibonacci(n-2)<<" ";
}
}
int main()
{
int n;
cin>>n;
fibonacci(n);
return 0;
}
- Was erwarten Sie code nach
return
zu tun? - Code nach einem return nicht ausführen. Nach allem, Sie wieder auf die aufrufende Funktion.
- Sie wollen das Ergebnis, also :
cout << fibonacci(n);
- Schrieben Sie das alle selbst? Wenn ja, dann stärken Sie Ihre Grundlagen, indem Sie ein Buch oder so etwas. Sonst schreiben Sie es selbst.
- ich habe versucht, es funktioniert nicht...
- ja, ich schrieb es alle von mir, ich habe gerade angefangen zu lernen c++ von mir jetzt.
- ich weiß, wie es in einer for-Schleife, ich bin versuchen zu üben Rekursion
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man sich Rosetta Code Seite für Fibonacci, sehen Sie, dass
F(0) == 0
undF(1) == 1
.In diesem Fall, Sie haben eine Funktion, die die Berechnung der fibonacci-Zahl an einer bestimmten position, richtig?
So, nun müssen Sie berechnen Sie und drucken Sie Sie:
Beachten Sie, dass dies nicht der effizienteste Weg, es zu tun auf allen, aber es ist irgendwie hilft Ihnen zu verstehen, wie Rekursion funktioniert.
Keine Notwendigkeit für cout in der Fibonacci-Funktion, die nur cout loop in int main()... auch ändern, WENN
Zustand, in Fibonacci-Funktion <=0 sonst es wird Ihnen ein "segmentation fault" (Fehler)
Selbst wenn Sie
cout
vor der return-Anweisung wird der code nicht geben Sie die fibonacci-Reihe in der richtigen Reihenfolge. Sagen wir, Sie bitten, fürfibonacci(7)
. Es wird gedruckt, alle dazwischen liegenden Berechnungen fürfibonacci(6)
, und dann wird es alle drucken 1 fürfibonacci(5)
.