Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
|||
% Find how many rises and falls a number has
|
||||
rises_falls = proc (n: int) returns (int,int)
|
||||
rises: int := 0
|
||||
falls: int := 0
|
||||
|
||||
while n >= 10 do
|
||||
dl: int := n//10
|
||||
n := n / 10
|
||||
dh: int := n//10
|
||||
if dh < dl then rises := rises + 1
|
||||
elseif dl < dh then falls := falls + 1
|
||||
end
|
||||
end
|
||||
return (rises, falls)
|
||||
end rises_falls
|
||||
|
||||
% Generate all numbers with equal rises and falls
|
||||
equal_rises_falls = iter () yields (int)
|
||||
n: int := 1
|
||||
rises, falls: int
|
||||
while true do
|
||||
rises, falls := rises_falls(n)
|
||||
if rises = falls then yield (n) end
|
||||
n := n + 1
|
||||
end
|
||||
end equal_rises_falls
|
||||
|
||||
% Show the first 200 and the 10,000,000th
|
||||
start_up = proc ()
|
||||
po: stream := stream$primary_output()
|
||||
count: int := 0
|
||||
|
||||
for n: int in equal_rises_falls() do
|
||||
count := count + 1
|
||||
if count <= 200 then
|
||||
stream$putright(po, int$unparse(n), 5)
|
||||
if count//10 = 0 then stream$putc(po, '\n') end
|
||||
elseif count = 10000000 then
|
||||
stream$putl(po, "\nThe 10,000,000th number is: "
|
||||
|| int$unparse(n))
|
||||
break
|
||||
end
|
||||
end
|
||||
end start_up
|
||||
Loading…
Add table
Add a link
Reference in a new issue