思路:遍历所有小于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类型一定记得加上结束符。
本文介绍了一种通过遍历整数并检查其平方值是否为对称数的方法。使用C语言实现,通过字符数组处理数字并比较其反转后的值来判断对称性。解决了未正确终止字符串导致的问题。
156

被折叠的 条评论
为什么被折叠?



