|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2001
Messaggi: 26
|
C++ e palindromi...
Salve a tutti!
Poco fa leggevo le tracce di alcuni esercizi di programmazione, ed una mi ha lasciato perplesso: come si fa, utilizzando semplicemente gli operatori modulo e divisione (senza array, pointers ed altro), a creare un programma che indichi se il numero immesso è un palindromo? Solo una curiosità. Grazie mille!! ![]()
__________________
Omnis homines qui sese student praestare ceteris animalibus decet summa ope niti ne vitam silentio transeant, veluti pecora quae natura finxit prona atque ventri oboedientia. |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Una possibile soluzione (molto semplice ma comunque comprensibile ) puo' essere la seguente:
Codice:
int reverse( int n ) { int result = 0; while ( n > 0 ) { int last = n % 10; result = result*10 + last; n /= 10; } return result; } bool palindromo( int n ) { if ( n == reverse(n) ) return true; return false; } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
|
Secondo me si basa tutto sul fatto che, la cifra i-esima CIFRA[i] del numero NUMERO la puoi estrarre con la seguente formula:
CIFRA[i] = (NUMERO modulo (10^i)) diviso (10^(i-1)) NB: divisione intera senza resto o cifre decimali Fissato questo l'algoritmo coincide con quello che usa gli array.
__________________
---> Lombardp CSS Certified Expert (Master Level) at Experts-Exchange Proud user of LITHIUM forum : CPU technology Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Mar 2001
Messaggi: 26
|
Grazie mille!
![]()
__________________
Omnis homines qui sese student praestare ceteris animalibus decet summa ope niti ne vitam silentio transeant, veluti pecora quae natura finxit prona atque ventri oboedientia. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:03.