思路非常的简单,即把这些书一位一位的分开用一个数组存上,看看一共多少位,然后从后向前看看是否相等即可。
#include<iostream>
using namespace std;
class pal
{
int low,up;
int a[100];
int count;
public:
pal(int t1,int t2);
int ispalin(int x);
void istore();
void output();
} ;
pal::pal(int t1,int t2)
{
count=0;
low=t1;
up=t2;
}
void pal::istore()
{
for(int i=low;i<=up;i++)
{
int x=i*i;
if(ispalin(x))
a[count++]=i;
}
}
void pal::output()
{
cout<<"count="<<count<<endl;
cout<<"x"<<'\t'<<"x*x"<<endl;
for(int i=0;i<count;i++)
cout<<a[i]<<'\t'<<a[i]*a[i]<<endl;
}
int pal::ispalin(int x)
{
int i=0,j,n;
int a[100];
while(x)
{
a[i]=x%10;
x=x/10;
i++;
}
n=i;
for(i=0,j=n-1;i<=j;i++,j--)
if(a[i]!=a[j])
return 0;
return 1;
}
int main()
{
pal p(100,1000);
p.istore();
p.output();
return 0;
}