Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let factorial_array n =
- let fac_lst = ref [] in
- let i = ref 1 in
- let s = ref 1 in
- while !s <= n do
- s := !s * !i;
- i := !i + 1;
- fac_lst := !s :: !fac_lst
- done;
- Array.of_list (List.rev !fac_lst)
- let silnie n =
- let factorials = factorial_array n in
- let output = ref [] in
- let x = ref n in
- let i = ref (Array.length factorials - 1) in
- while !x <> 0 do
- if !x >= factorials.(!i) then begin
- output := (!i+1) :: !output;
- x := !x - factorials.(!i)
- end else begin
- i := !i - 1
- end
- done;
- !output
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement