#include<stdio.h>
int main(){
int n,p,i,x,m;
n=0;
while(n<256){
bool c=true;
int a[10];
p=n*n;
i=0;
while(p>0){
a[i]=p%10;
p=p/10;
i++;
}
if(i==1){
printf("%d\n",n);
}
else{
m=i/2;
x=i;//x是p的位数
for(i=0;i<m;i++){
if(a[i]!=a[x-i-1]){
c=false;
break;
}
}
if(c==true){
printf("%d\n",n);
}
}
n++;
}
return 0;
int main(){
int n,p,i,x,m;
n=0;
while(n<256){
bool c=true;
int a[10];
p=n*n;
i=0;
while(p>0){
a[i]=p%10;
p=p/10;
i++;
}
if(i==1){
printf("%d\n",n);
}
else{
m=i/2;
x=i;//x是p的位数
for(i=0;i<m;i++){
if(a[i]!=a[x-i-1]){
c=false;
break;
}
}
if(c==true){
printf("%d\n",n);
}
}
n++;
}
return 0;
}
第一次错误:忘了n++;
第二次错误:少算了0
还有不能忘记考虑 平方为一位数时的情况 也就是循环时的边缘数值