63 lines
1.0 KiB
Plaintext
63 lines
1.0 KiB
Plaintext
n = 1000
|
|
long = 10 * int(n / 4)
|
|
needdecimal = 1 //true
|
|
dim a(long)
|
|
nines = 0
|
|
predigit = 0 // {First predigit is a 0}
|
|
|
|
for j = 1 to long
|
|
a(j-1) = 2 // {Start with 2s}
|
|
next j
|
|
|
|
for j = 1 to n
|
|
q = 0
|
|
for i = long to 1 step -1
|
|
// {Work backwards}
|
|
x = 10*a(i-1) + q*i
|
|
a(i-1) = mod(x, (2*i - 1))
|
|
q = int(x / (2*i - 1))
|
|
next i
|
|
a(0) = mod(q, 10)
|
|
q = int(q / 10)
|
|
if q = 9 then
|
|
nines = nines + 1
|
|
else
|
|
if q = 10 then
|
|
d = predigit+1
|
|
gosub outputd
|
|
if nines > 0 then
|
|
for k = 1 to nines
|
|
d = 0
|
|
gosub outputd
|
|
next k
|
|
end if
|
|
predigit = 0
|
|
nines = 0
|
|
else
|
|
d = predigit
|
|
gosub outputd
|
|
predigit = q
|
|
if nines <> 0 then
|
|
for k = 1 to nines
|
|
d = 9
|
|
gosub outputd
|
|
next k
|
|
nines = 0
|
|
end if
|
|
end if
|
|
end if
|
|
next j
|
|
print predigit
|
|
end
|
|
|
|
label outputd
|
|
if needdecimal then
|
|
if d = 0 then return : fi
|
|
print d;
|
|
print ".";
|
|
needdecimal = 0 //false
|
|
else
|
|
print "", d;
|
|
endif
|
|
return
|