Ulam-Funktion (rekursiv) auf Calliope mini
Der Calliope Mini ist schon ein beeindruckendes Ding. Um etwas mehr darüber zu lernen, habe ich die Ulam-Funktion auf dem Gerät programmiert.
Eine einfache Bedienungsanleitung? Klar: Mit „A“ die Zahl erhöhen, mit „B“ die Zahl senken. Der kleine schwarze Druckknopf links unten „A+B“ startet die Berechnung.
Und der Code dazu, in JavaScript:
let n: number
let ulam = function (n: number): number {
basic.showString("," + n)
if (n == 1) {
return 1
} else {
if (n % 2 == 0) {
return ulam(n / 2)
}
else { return ulam(3 * n + 1) }
}
}
input.onButtonPressed(Button.B, () => {
n += -1
basic.showString("-" + n)
})
input.onButtonPressed(Button.A, () => {
n += 1
basic.showString("+" + n)
})
input.onButtonPressed(Button.AB, () => {
ulam(n)
basic.showString("#" + n)
})