Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
30
Task/Pi/Crystal/pi.crystal
Normal file
30
Task/Pi/Crystal/pi.crystal
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
require "big"
|
||||
|
||||
def pi
|
||||
q, r, t, k, n, l = [1, 0, 1, 1, 3, 3].map { |n| BigInt.new(n) }
|
||||
dot_written = false
|
||||
loop do
|
||||
if 4*q + r - t < n*t
|
||||
yield n
|
||||
unless dot_written
|
||||
yield '.'
|
||||
dot_written = true
|
||||
end
|
||||
nr = 10*(r - n*t)
|
||||
n = ((10*(3*q + r)) / t) - 10*n
|
||||
q *= 10
|
||||
r = nr
|
||||
else
|
||||
nr = (2*q + r) * l
|
||||
nn = (q*(7*k + 2) + r*l) / (t*l)
|
||||
q *= k
|
||||
t *= l
|
||||
l += 2
|
||||
k += 1
|
||||
n = nn
|
||||
r = nr
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
pi { |digit_or_dot| print digit_or_dot; STDOUT.flush }
|
||||
Loading…
Add table
Add a link
Reference in a new issue