PDA

Visualizza la versione completa : [C++] Numeri romani


conqueror
18-12-2005, 15:17
Devo fare un programmino che mi analizzi un numero compreso tra 0 e 3999 e lo trasformi nel corrispondente numero romano. Da fare concettualmente facile, un paio di funzioncine e via.... per ho un problema di ordine diverso. Preso un numero maggiore di 100 (es. 130) come posso operare singolarmente sulle cifre 1, 3, 0??? Non ditemi che devo prima convertire in string e poi riconvertire le singole sottostringe in int!! (se purtroppo questo l'unico metodo, mi dite la funzione opposta a atoi).
Thx

pprllo
18-12-2005, 16:26
Originariamente inviato da conqueror
Devo fare un programmino che mi analizzi un numero compreso tra 0 e 3999 e lo trasformi nel corrispondente numero romano. Da fare concettualmente facile, un paio di funzioncine e via.... per ho un problema di ordine diverso. Preso un numero maggiore di 100 (es. 130) come posso operare singolarmente sulle cifre 1, 3, 0??? Non ditemi che devo prima convertire in string e poi riconvertire le singole sottostringe in int!! (se purtroppo questo l'unico metodo, mi dite la funzione opposta a atoi).
Thx
La funzione opposta ad atoi (se ti serve) itoa.
Altrimenti c' un modo pi semplice.
3921 =
3 * 1000 +
9 * 100 +
2 * 10 +
1
Quindi:
PrimaCifra = Numero/1000;
SecondaCifra = (Numero/100)%10;
TerzaCifra = (Numero/10)%10;
QuartaCifra = Numero%10;
Semplice e rapido.

conqueror
18-12-2005, 16:38
grz mille, penso di aver risolto tutto ora. (ci avevo anche pensato a fare numero/1000, ma poi nn riuscivo a capire come ottenere per es. le centinaia. il %10 fondamentale)

Grazie ancora.

Ciao

:ciauz:

Loading