Ich habe ein Problem gefunden, das besagt, dass es durch Rekursion gelöst werden soll. Die Frage ist, dass es bei einer bestimmten Anzahl die Anzahl der 8, die es gibt, zählen sollte, aber wenn zwei 8 nebeneinander liegen, sollte es als doppelt gezählt werden. Zum Beispiel:Rekursion beim Zählen der Vorkommen einer Zahl
48 should return 1
4881 should return 4
8818 should return 5
Ich habe folgendes Programm in Schema hergestellt:
(define (count n)
(if (= n 0)
0
(begin
(if (= (remainder n 100) 88)
2
(begin
(if (= (remainder n 10) 8)
1
0))
)
(+ (count (quotient n 10))))))
Das Problem ist, dass jedes Mal wenn ich es laufen 0 zurück, was bin ich dabei? Ich möchte keine Listen verwenden oder einstellen! um eine Hilfsvariable zu verwenden. Irgendeine Hilfe?
Ich glaube nicht, benötigen Sie bitte den 'begin's .. – thebjorn
.. aber Sie werden auf Zwischen Antworten auf Rekursion benötigen (und irgendwo möchten Sie vielleicht Quotienten definieren ..?) – thebjorn