Benutzer-Werkzeuge

Webseiten-Werkzeuge


examples:project_euler_-_problem_p172

Project Euler - Problem 172

Quelle

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
examples/project_euler_-_problem_p172.txt · Zuletzt geändert: 2013-06-06 21:26 (Externe Bearbeitung)