Wie viele 18-stellige Zahlen (ohne führende Nullen) n gibt es, so dass keine Stelle mehr als drei Mal in n auftritt?
Antwort: Finde es selbst heraus mit Forth
Eine Lösung mit gforth:
#! /usr/bin/gforth
: d* ( d d -- d ) 3 pick * >r tuck * >r um* r> + r> + ;
: p172 { W: n W: r -- D: ret }
n 3 = if r r r * * s>d exit then
n 2 = if r r * s>d exit then
n 1 = if r s>d exit then
n 1- r 1- recurse \ -- d2
n 2 - r 1- recurse n 1- s>d d* d+ \ d2 -- d3
n 1- dup 1- 2 */ s>d n 3 - r 1- recurse d* d+ \ d3 -- d4
r 10 = if 9. else r s>d then d* \ d4 -- ret
;
18 10 p172
." The answer is " d. cr
bye