O teu amigo Yaʻqūb trabalha ao balcão da delicatessen mais movimentada da cidade, a cortar, a pesar e a embrulhar encomendas para uma fila infindável de clientes com fome. Para as coisas não pararem, cada cliente tira uma senha numerada quando chega.
Quando é altura de chamar a pessoa seguinte, o Yaʻqūb lê o número em voz alta, sempre por palavras completas em inglês, para garantir que toda a gente o ouve com clareza.
Dado um número, a tua tarefa é escrevê-lo por palavras em inglês, exatamente como o teu amigo o diria em voz alta. Yaʻqūb espera usar números de 0 até 999 999 999 999.
Exemplos:
Esta versão em Rust é ligeiramente diferente das versões deste exercício noutras linguagens. Em vez de te pedir para devolveres erros para valores fora do intervalo, usamos o sistema de tipos forte de Rust para limitar os valores de entrada. É muito mais fácil fazer com que uma função lide com todos os valores de entrada válidos do que exigir a quem usa o teu módulo que trate dos erros.
Acrescenta a capacidade de converter até ao valor máximo de u64: 18_446_744_073_709_551_615.
Para teres uma ideia da saída que isto deve produzir, vê o último caso de teste.
Inscreve-te no Exercism para aprenderes e dominares Rust com 99 exercícios, e mentoria humana real, tudo grátis.