In der gegebenen Aufgabe erhalten wir eine ganze Zahl n und müssen Pnfinden, was die Zaubernummer an dieser Position ist. Nun, wie wir wissen, ist eine Schreibzahl Teil einer Folge, die durch die folgende Formel gegeben wird: Pn= 2*Pn-1+ Pn-2
Die ersten beiden Startnummern – P0= 0 und P1= 1
Jetzt werden wir dieses Problem mit zwei Methoden lösen: Rekursion und Iteration.
In dieser Formel wenden wir die Formel Pell Number rekursiv an und führen n Iterationen durch.
#includeusing namespace std; int pell(int n) { if(n <= 2) return n; return 2*pell(n-1) + pell(n-2); } int main() { int n = 6; // given n cout << pell(n) <<"\n"; // Pell number at that position. return 0; }
70
In diesem Ansatz verwenden wir die Rekursion, indem wir pell(n-1) && pell(n-2) aufrufen, bis n kleiner oder gleich 2 ist, weil We wissen, dass die geschriebenen Zahlen bis 2 mit der angegebenen Zahl übereinstimmen. Die Gesamtzeitkomplexität des obigen Programms beträgtO(N), wobei N die angegebene Zahl ist.
Bei dieser Methode verwenden wir dieselbe Formel wie oben, verwenden jedoch eine for-Schleife anstelle einer rekursiven Funktion, um die Zahl zu berechnen.
#includeusing namespace std; int main() { int n = 6; // given n. int p0 = 0; // initial value of pn-2. int p1 = 1; // initial value of pn-1. int pn; // our answer. if(n <= 2) // if n <= 2 we print n. cout << n <<"\n"; else { for(int i = 2; i <= n; i++) { // we are going to find from the second number till n. pn = 2*p1 + p0; p0 = p1; // pn-1 becomes pn-2 for new i. p1 = pn; // pn becomes pn-1 for new i. } cout << pn << "\n"; } return 0; }
70
Im angegebenen Programm durchlaufen wir von 2 nach n und aktualisieren einfach den Wert von pn-2 auf pn-1, pn-1 Der Wert wird auf aktualisiert pn, bis n erreicht ist.
In diesem Artikel haben wir das Problem gelöst, die N-te Zaubernummer mithilfe von Rekursion und Iteration zu finden. Wir haben auch ein C++-Programm zur Lösung dieses Problems und einen vollständigen Weg zur Lösung dieses Problems (normal und effizient) gelernt. Wir können das gleiche Programm in anderen Sprachen wie C, Java, Python und anderen Sprachen schreiben.
Das obige ist der detaillierte Inhalt vonFinden Sie die Pell-Nummer mit C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!