27 lines
683 B
Text
27 lines
683 B
Text
FOR n% = 0 TO 20
|
|
PRINT n% RIGHT$(" " + FNzeckendorf(n%), 8)
|
|
NEXT
|
|
PRINT '"Checking numbers up to 10000..."
|
|
FOR n% = 21 TO 10000
|
|
IF INSTR(FNzeckendorf(n%), "11") STOP
|
|
NEXT
|
|
PRINT "No Zeckendorf numbers contain consecutive 1's"
|
|
END
|
|
|
|
DEF FNzeckendorf(n%)
|
|
LOCAL i%, o$, fib%() : DIM fib%(45)
|
|
fib%(0) = 1 : fib%(1) = 1 : i% = 1
|
|
REPEAT
|
|
i% += 1
|
|
fib%(i%) = fib%(i%-1) + fib%(i%-2)
|
|
UNTIL fib%(i%) > n%
|
|
REPEAT
|
|
i% -= 1
|
|
IF n% >= fib%(i%) THEN
|
|
o$ += "1"
|
|
n% -= fib%(i%)
|
|
ELSE
|
|
o$ += "0"
|
|
ENDIF
|
|
UNTIL i% = 1
|
|
= o$
|