41 lines
894 B
Plaintext
41 lines
894 B
Plaintext
module Fusc_sequence (level) {
|
|
class z {
|
|
boolean noStop=true
|
|
module generate(&k()) {
|
|
object q=stack:=1
|
|
call k(0)
|
|
call k(1)
|
|
stack q {
|
|
x=number:data x:call k(x)
|
|
x+=stackitem():data x:call k(x)
|
|
if .noStop then loop
|
|
}
|
|
q=stack
|
|
.noStop<=true
|
|
}
|
|
}
|
|
z=z()
|
|
long max=61, n, k=-1, m
|
|
string fmt="#,##0", fs="{0:-10} : {1}", prev
|
|
function f1(new x) {
|
|
n++
|
|
if n=1 then print "First 61 terms:":print "[";
|
|
if n<max then
|
|
print x+", ";
|
|
else.if n=max then
|
|
print x+"]"
|
|
z.noStop=false
|
|
end if
|
|
}
|
|
profiler
|
|
z.generate lazy$(&f1())
|
|
print "Points in the sequence where an item has more digits than any previous items:"
|
|
print format$(fs, "index", "value")
|
|
n=0: max=level
|
|
function f2(new x) {if x>=k then m++:k=10&**m:print format$(fs,str$(n,fmt),str$(x,fmt)):if m=max then z.noStop=false
|
|
n++}
|
|
z.generate lazy$(&f2())
|
|
print timecount
|
|
}
|
|
Fusc_sequence 5
|