回文数。
拿10进制来说17不是回文数,但17是2进制的回文数(17=10001)
输入:
n(0<n<50000)
0退出。
输出:
n是2到16进制的回文数。
Sample Input:
17
19
0
Out:
Number 17 is palindrome in basis 2 4 16
Number 19 is not a palindrome
//参考程序 06-4-7
#include <iostream.h>
int main()
{
int n,i,m,j;
int a[20],len;
while(cin>>n)
{
int flag1=0;
if(n==0) return 0;
for(i=2;i<=16;i++)
{
m=n;len=0;
while(m)
{
a[len]=m%i;
m=m/i;
len++;
}
int flag=0;
for(j=0;j<len/2;j++)
if(a[j]!=a[len-1-j])
{
flag=1;
break;
}
if(flag==0 && flag1==0)
{
cout<<"Number "<<n<<" is palindrome in basis "<<i;
flag1++;
}
else if(flag==0 && flag1==1)
cout<<" "<<i;
}
if(flag1==0)
cout<<"Number "<<n<<" is not a palindrome";
cout<<endl;
}
}
评论