Propongo un alternativa, un pò più lunga , ma forse più semplice da capire.
Codice PHP:#include<iostream>
using namespace std;
int calcola_cifre ( int num );
int estrai_cifra ( int num, int i);
int confronto_cifre( int num , int cifre );
int main()
{
int num=0;
int cifre=0;
int ris=0;
cout<<"Inserisci numero: ";
cin>>num;
cifre = calcola_cifre(num);
ris = confronto_cifre(num,cifre);
if(ris==0) cout<<"\nPalindromo\n\n";
else cout<< "\nNon palindromo\n\n";
system("pause");
return 0;
}
int calcola_cifre ( int num )
{
int cifre=0;
while(num!=0){
num/=10;
cifre++;
}
return cifre;
}
int confronto_cifre( int num , int cifre)
{
int i;
for (i=1 ; i<=cifre/2 ; i++) {
if ( estrai_cifra(num,i) != estrai_cifra(num,cifre+1-i) )
return 1;
}
return 0;
}
int estrai_cifra ( int num, int n)
{
int j;
for ( j=1 ; j<n ; j++)
num/=10;
return num%10;
}

Rispondi quotando