Module Sol_alg


module Sol_alg: sig .. end
Uma Solução do Problema A de Teoria da Computação 2011/2012. Três cálculos simples sobre os algarismos de um número inteiro.

Uma solução simples (4 linhas...) que usa uma adaptação de fold_left (das listas) para inteiros.


val fold_int : (int -> 'a -> 'a) -> 'a -> int -> 'a
fold_int: um inteiro visto como uma lista de algarismos. fold_int percorre estes algarismos da direita para a esquerda. Assim:

fold_int f v a1...an = (f a1 ...(f an-1 (f an v)) ...)

val teste : int -> int -> int * int * int -> int * int * int
tendo um triplo (a,b,c) que guarde os resultados temporários dos três calculos (relembra-se, da direita para a esquerda), ao analisar um novo algarismo i, teste actualisa devidamente o triplo