haskell

berzebu

Membro
Peço ajuda para a seguinte função, dado um número inteiro devolve uma
string com a lista de digitos por extenso.

17486
UM SETE QUATRO OITO SEIS
 
converteInt :: Int -> String
converteInt a = aux a ""
where aux :: Int -> String -> String
aux a ls |(a==0) = ls
|((mod a 10)==0)= aux (div a 10) ("ZERO "++ ls)
|((mod a 10)==1)= aux (div a 10) ("UM "++ ls)
|((mod a 10)==2)= aux (div a 10) ("DOIS "++ ls)
|((mod a 10)==3)= aux (div a 10) ("TRES "++ ls)
|((mod a 10)==4)= aux (div a 10) ("QUATRO "++ ls)
|((mod a 10)==5)= aux (div a 10) ("CINCO "++ ls)
|((mod a 10)==6)= aux (div a 10) ("SEIS "++ ls)
|((mod a 10)==7)= aux (div a 10) ("SETE "++ ls)
|((mod a 10)==8)= aux (div a 10) ("OITO "++ ls)
|((mod a 10)==9)= aux (div a 10) ("NOVE "++ ls)

Aqui está, identa tudo bem para nao dar erros.

P.S. A funcao corta os zeros do inicio dos numeros. ex: 000202 vai dar "DOIS ZERO DOIS ", tenta resolver se for necessario
 
Back
Topo