Guest User

Untitled

a guest
Apr 19th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. DIGITS = 5000
  2. ARRAYLEN = (DIGITS * 10) // 3 + 1
  3. array = [2]*ARRAYLEN
  4. predigits = Array(Int32).new()
  5. pi = Array(Int32).new()
  6.  
  7. digit = 0
  8. until digit==DIGITS
  9. index = 0
  10. array = array.map! {|x| x*10}
  11. until index==ARRAYLEN-1
  12. numer = ARRAYLEN - index - 1
  13. denom = numer * 2 + 1
  14.  
  15. array[index + 1] += (array[index] // denom) * numer
  16. array[index] %= denom
  17.  
  18. index += 1
  19. end
  20.  
  21. quot = array[-1] // 10
  22.  
  23. case quot
  24. when 9
  25. predigits << 9
  26. when 10
  27. print predigits.map!{|x|(x+1)%10}.join("")
  28. # pi += predigits.map!{ |x| (x+1)%10}
  29. predigits = [0]
  30. else
  31. print predigits.join("")
  32. # pi += predigits
  33. predigits = [quot]
  34. end
  35.  
  36. array[-1] %= 10
  37. digit += 1
  38. end
  39.  
  40. # puts pi.join("")
  41. puts ""
Advertisement
Add Comment
Please, Sign In to add comment