SOLVIUM

Programmierung

Quersumme berechnen in tScheme

Der Code

Der Code zum Berechnen der Quersumme gestaltet sich dem Problem entsprechend ziemlich einfach:

(define (quersumme n)
  (let
    rekursionsfunc (function (r n)
      (if (= n 0) r
        (rekursionsfunc (+ (mod n 10) r) (/ n 10))
      ))
    (rekursionsfunc 0 n)
  )
)

Die Funktionsweise

Zunächst wird lokal per let eine endrekursive Hilfsfunktion rekursionfunc erzeugt. Diese bekommt zwei Parameter r und n übergeben: r ist das bisherige Ergebnis, n ist die Zahl, von der die Quersumme noch gebildet werden muss.

Innerhalb der Funktion wird überprüft, ob die übergebene Zahl n 0 ist, falls ja, ist man fertig - das Ergebnis r wird zurückgegeben und über alle Ebenen der Rekursion "herausgereicht". Falls n größer 0 ist, wird die letzte Ziffer zum Zwischenergebnis addiert und die Funktion rekursionsfunc mit dem Zwischenergebnis und n, um eine Ziffer verkürzt, erneut aufgerufen.

Der Aufruf

*** tScheme, Version 2.7 ***
To quit, type `(quit)` or Ctrl-D (Linux), Ctrl-C (Windows)

-> (load "quersumme.s")
function[quersumme]
-> (quersumme 42)
6
->

© 2006-2019 Solvium.de - Impressum

» Blog powered by Wordpress. Silk icons von FamFamFam.