Self-describing numbers: Difference between revisions
Content added Content deleted
(Updated notes second D entry) |
(Added Racket code) |
||
Line 1,146: | Line 1,146: | ||
[5, 2, 1, 0, 0, 1, 0, 0, 0] |
[5, 2, 1, 0, 0, 1, 0, 0, 0] |
||
[6, 2, 1, 0, 0, 0, 1, 0, 0, 0] </pre> |
[6, 2, 1, 0, 0, 0, 1, 0, 0, 0] </pre> |
||
=={{header|Racket}}== |
|||
<lang Racket>#lang racket |
|||
(define (get-digits number (lst null)) |
|||
(if (zero? number) |
|||
lst |
|||
(get-digits (quotient number 10) (cons (remainder number 10) lst)))) |
|||
(define (self-describing? number) |
|||
(define digits (get-digits number)) |
|||
(for/fold ((bool #t)) |
|||
((i (in-range (length digits)))) |
|||
(and bool |
|||
(= (count (lambda (x) (= x i)) digits) |
|||
(list-ref digits i)))))</lang> |
|||
Sadly, the implementation is too slow for the optional task, taking somewhere around 3 minutes to check all numbers below 100.000.000 |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |