Schnapszahlen

Aus ProgrammingWiki
Archivierte Version vom 2017-11-30T07:34:12+00:00. Aktuelle Version

ZA: Schnapszahlen

Aus einer vorgegebenen numerischen Liste sollen alle Schnapszahlen herausgesucht werden.

Beispiel:

(schnapszahlen '(2 3 5 -1 3 6 11 18 15 0 19 27 -33 -2 55 31 7 39 22 1))
--> (11 55 22)

Zunächst sollten wir uns klarmachen, was wir unter einer Schnapszahl verstehen wollen:

Beschreibung:

  • Eine einstellige oder negative Zahl ist keine Schnapszahl.
  • Eine zweistellige Zahl ist eine Schnapszahl, wenn beide Ziffern gleich sind.
  • Eine mehrstellige Zahl ist eine Schnapszahl, wenn ihre letzten beiden Ziffern gleich sind und die Zahl ohne die letzte Ziffer eine Schnapszahl ist.

Es empfiehlt sich, ein separates Prädikat zur Schnapszahlprüfung zu implementieren.

Hinweise:

  • Mit der Prozedur quotient kann eine ganzzahlige Division ohne Rest ausgeführt werden:

    (quotient 35 10) --> 3
    (quotient 7 10)  --> 0
  • Mit der Prozedur modulo kann der Rest einer ganzzahlige Division ermittelt werden:

    (modulo 35 10) --> 5
    (modulo 7 10)  --> 7

Implementation: