2022-1-16 每日一题 NewCoder KY267 对称平方数1
题目描述:
链接:https://www.nowcoder.com/practice/a84d46d5321f4e20931cb725e6c74fad
解题思路:
暴力求解(枚举),对称平方数即 平方数和其反序数相同,所以求反序数,与原平方数比较是否一致
易错点总结:
1.Reverse函数几个注意点:
· revx赋初值为0
· 循环不要忘了每次 x/10
代码优化总结:
1.for循环中使用++i,少一次访存(性能比i++更好)
2.若想精简代码,可以将循环变量int i=0的定义放入for()中;if条件判断时直接计算ii,不再另定义一个新变量存放ii
代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
/**求反序数**/
int Reverse(int x)
{
int revx = 0;//赋初值为0!!!
while(x != 0){
revx *= 10;
revx += x % 10;
x /= 10;
}
return revx;
}
int main()
{
for(int i = 0; i<=256; ++i){
if(i * i == Reverse(i * i)){
printf("%d\n",i);
}
}
return 0;
}