Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,23 @@
import strformat
func fusc(n: int): int =
if n == 0 or n == 1:
n
elif n mod 2 == 0:
fusc(n div 2)
else:
fusc((n - 1) div 2) + fusc((n + 1) div 2)
echo "The first 61 Fusc numbers:"
for i in 0..61:
write(stdout, fmt"{fusc(i)} ")
echo "\n\nThe Fusc numbers whose lengths are greater than those of previous Fusc numbers:"
echo fmt" n fusc(n)"
echo "--------- ---------"
var maxLength = 0
for i in 0..700_000:
var f = fusc(i)
var length = len($f)
if length > maxLength:
maxLength = length
echo fmt"{i:9} {f:9}"

View file

@ -0,0 +1,51 @@
import deques, strformat
iterator fusc(): int =
var q = [1].toDeque()
yield 0
yield 1
while true:
var val = q.popFirst()
q.addLast(val)
yield val
val += q[0]
q.addLast(val)
yield val
iterator longestFusc(): tuple[idx, val: int] =
var sofar = 0
var i = -1
for f in fusc():
inc i
if f >= sofar:
yield (i, f)
sofar = if sofar == 0: 10 else: 10 * sofar
#———————————————————————————————————————————————————————————————————————————————————————————————————
const
MaxFusc = 61
LongestCount = 7
echo &"First {MaxFusc}:"
var i = -1
for f in fusc():
inc i
stdout.write f
if i == MaxFusc:
echo ""
break
stdout.write ' '
echo "\nLength records:"
var count = 0
for (i, f) in longestFusc():
inc count
echo &"fusc({i}) = {f}"
if count == LongestCount:
break