思路:遍历所有小于256的整数,验证其平方是否为对称数
#include<stdio.h>
#include<string.h>
int main(){
for(int i=0;i<256;i++){
int m=i*i;
char buf1[100],buf2[100];
int size;
size=0;
while(m!=0){
buf1[size++]=m%10+'0';
m/=10;
}
for(int p=0,q=size-1;p<size;p++,q--){
buf2[p]=buf1[q];
}
buf1[size]=buf2[size]='\0'; //这行一定要加
if(strcmp(buf1,buf2)==0) printf("%d\n",i);
}
return 0;
}
提交了很多次都显示wrong answer,但是输出的答案是对的。最后发现是因为数组buf最后没有加上结束符。加上后就a了。
经验教训:string类型一定记得加上结束符。