rekursive Funktion stellen Sie eine positive ganze Dezimalzahl in umgekehrter Reihenfolge c++
Habe ich einen Auftrag schreiben Sie eine rekursive Funktion, schreibt die Ziffern einer positiven ganzen Zahl in umgekehrter Reihenfolge. Mein problem ist, dass die Funktion nicht angezeigt, die umgekehrte richtig. Ich kenne im soll, verwenden Sie % oder 10 wenn die Anzeige der Nummer und /10, wenn der rekursive Aufruf als auch als base-case werden soll < 10. Hier ist mein code.
#include <iostream>
using namespace std;
int reverse(int,int);
int main()
{
int number;
int n;
cout << " Enter number to reverse." << endl;
cin >> number;
cout << reverse(number % 10,0);
return 0;
}//end main
int reverse(int number,int n)
{
if(n < 10)
{
return n;
}
else
{
return reverse(number/10,n);
}
}//end reverse
Es ist schwer vorstellbar, wie Sie versuchen, zu implementieren, die Dinge hier. Für Vorspeisen, Ihre
n
ist immer 0, das ist immer < 10, also du wirst immer wieder auf 0 zurück. Auch wenn n variabel waren und manchmal > 10, es ändert sich nie so geben Sie eine endlose Rekursion.
InformationsquelleAutor Kayla Bianchi | 2012-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das ist, was Ihre Funktion sein sollte:
InformationsquelleAutor Rami Jarrar
Könnten Sie folgenden code (wenn es Sie nicht stört, striping führenden Nullen, oder Sie können sammeln chars in string oder ostringstream)
InformationsquelleAutor Greg
Diese Lösung wird nachgestellte Nullen weglassen, weil es buchstäblich die Umkehrung der Inhalt des integer:
InformationsquelleAutor ch0kee
Könnten Sie auch tun:
Aber Sie sollten loswerden der ersten Nummer drucken Sie zweimal.
InformationsquelleAutor jviotti
Hier ist meine Lösung. Es dauert nur einen parameter und int zurückgeben.
Auch vergessen Sie nicht, cmath.
Oder so ist es ein bisschen mehr elegant.
InformationsquelleAutor Naheel