Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DIGITS = 5000
- ARRAYLEN = (DIGITS * 10) // 3 + 1
- array = [2]*ARRAYLEN
- predigits = Array(Int32).new()
- pi = Array(Int32).new()
- digit = 0
- until digit==DIGITS
- index = 0
- array = array.map! {|x| x*10}
- until index==ARRAYLEN-1
- numer = ARRAYLEN - index - 1
- denom = numer * 2 + 1
- array[index + 1] += (array[index] // denom) * numer
- array[index] %= denom
- index += 1
- end
- quot = array[-1] // 10
- case quot
- when 9
- predigits << 9
- when 10
- print predigits.map!{|x|(x+1)%10}.join("")
- # pi += predigits.map!{ |x| (x+1)%10}
- predigits = [0]
- else
- print predigits.join("")
- # pi += predigits
- predigits = [quot]
- end
- array[-1] %= 10
- digit += 1
- end
- # puts pi.join("")
- puts ""
Advertisement
Add Comment
Please, Sign In to add comment