Sie sich erinnern können, die Sie haben eingegebenen Ziffern schon gesehen. Zum Beispiel mit einem Bool-Array der Länge 10. Beim ersten Aufruf Ihrer Funktion sind alle Einträge false
. In jedem rekursiven Aufruf setzen Sie array[n%10]
auf True. Wenn es schon true
war, dann hast du eine doppelte Ziffer gefunden, sonst nicht.
Wenn Sie nur wollen Rekursion verwenden, können Sie eine zweite rekursive Funktion definieren:
bool checkIfDigitApearsInNumber(int n, int digit) {
if (n == 0) {
return false;
} else {
if (n % 10 == digit) {
return true;
} else {
return checkIfDigitApearsInNumber(n/10, digit);
}
}
}
In Ihrem Check
funktionieren, müssen Sie mit n/10, n%10
in jedem Schritt, um diese Funktion aufrufen.
Warum Rekursion - möglich, aber nicht natürlich? Ist das Schule Hausaufgaben? –
zeigen Sie Ihren ersten Versuch –
mein erster Versuch war, durch alle Ziffern gehen, aber ich kann nur zwei zusammenhängende Ziffern vergleichen, aber ich kann nicht eine Ziffer mit jedem anderen vergleichen und ja, es ist wichtig, Hausaufgaben –