#load "nums.cma";; open Big_int;; let rec factorial n = if eq_big_int n unit_big_int then unit_big_int else mult_big_int n (factorial (pred_big_int n));; let int_list_of_string s = let len = String.length s in let rec chars_of_string s n = if n == 0 then [int_of_char s.[0] - int_of_char '0'] else (chars_of_string s (n - 1)) @ [(int_of_char s.[n]) - int_of_char '0'] in chars_of_string s (len - 1);; Printf.printf "%d\n" (List.fold_left (+) 0 (int_list_of_string (string_of_big_int (factorial (big_int_of_int 100)))));;
jeudi 25 mars 2010
Project Euler #20
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire