fork download
  1. open Num
  2. let rec f n =
  3. let rec aux m x y = match m with
  4. _ when n < m -> y
  5. | 0 -> aux (m + 1) y (num_of_int 4)
  6. | 1 -> aux (m + 1) y (num_of_string "17/4")
  7. | _ -> aux (m + 1) y ((num_of_int 108) -/ (num_of_int 815) // y +/ (num_of_int 1500) // (y */ x))
  8. in aux 0 (num_of_int 0) (num_of_int 0)
  9. let (<<) f g x = f (g x)
  10. let println = print_newline << print_string << approx_num_fix 30
  11. let () =
  12. println @@ f 0;
  13. println @@ f 1;
  14. println @@ f 2;
  15. println @@ f 3;
  16. println @@ f 80;
  17.  
Success #stdin #stdout 0.01s 5312KB
stdin
Standard input is empty
stdout
+4.000000000000000000000000000000
+4.250000000000000000000000000000
+4.470588235294117647058823529412
+4.644736842105263157894736842105
+4.999999999999999996426201795080