fork download
  1. n = 3
  2. a = percentage = 5323
  3. b = 10000
  4.  
  5. h = [1, 0, 1]
  6. k = [0, 1, 0]
  7.  
  8. loop {
  9. if a/b > 1
  10. nxt = [a/b-1, a/b]
  11. else
  12. nxt = [a/b]
  13. end
  14.  
  15. break if nxt.any?{|a_n|
  16. h[n] = a_n*h[n-1] + h[n-2]
  17. k[n] = a_n*k[n-1] + k[n-2]
  18. (percentage - 10000.0*h[n]/k[n]).abs < 0.5
  19. }
  20. n,a,b = n+1, b, a%b
  21. }
  22.  
  23. p k[n]
  24. p h[n]/k[n].to_f
Success #stdin #stdout 0s 4760KB
stdin
Standard input is empty
stdout
62
0.532258064516129