Numeros ordenadoscomo strings

ola

estou com uma duvida… preciso resolver o seguinte probelma:

Quando os números inteiros entre 1 e 10 bilhões são escritos por extenso e ordenados alfabeticamente como strings,
qual é o primeiro número ímpar que aparece na lista?

Mas quase não sei nem por onde comecar, sou leigo… alguem pode me ajudar???

Esse é um problema de língua portuguesa (ou psicotécnico), não de computação. Deveria trancar isto aqui, mas como é interessante, vamos lá.

De qualquer maneira: os números que podem começar um número por extenso são:

um, dois, três, quatro, cinco, seis, sete, oito, nove e dez;
dez, onze, doze, treze, catorze, quinze, dezesseis, dezessete, dezoito, dezenove, vinte.
trinta, quarenta, cinquenta, sessenta, setenta, oitenta, noventa.
cem, cento.
duzentos, trezentos, quatrocentos, quinhentos, seiscentos, setecentos, oitocentos, novecentos.
mil.

Números como “milhão” e “bilhão” sempre precisam de um número na frente (um milhão, dez bilhões), então a palavra “bilhão” nunca vai ser a primeira palavra, o que já descarta números tão grandes assim.

Pondo esses números em ordem alfabética temos:

catorze,
cem, cento, cinco, cinquenta,
dez, dezenove, dezesseis, dezessete, dezoito,
dois, doze, duzentos,
mil,
nove, novecentos, noventa,
oitenta, oito, oitocentos,
onze,
quarenta, quatro, quatrocentos,
quinhentos, quinze,
seis, seiscentos, sessenta,
sete, setecentos, setenta,
três, treze, trezentos,
trinta, um, vinte.

Como catorze é um número par, então ele deve preceder alguma coisa (como “mil” ou “milhões”) para você poder ter um número ímpar.
Então o número pedido é catorze mil e um (14001).

A resposta acima é válida se aceitarmos a grafia “catorze”. Se ela não for aceita, então devemos usar o próximo número (cento).
O número seria então cento e um (101).

Olhe a pegadinha. Se fosse entre 1 e 100 bilhões, o primeiro número seria catorze bilhões e um.

Hum… na verdade cometi um erro aqui. O número é 14.105.