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;
}

posted @ 2022-01-17 00:00  Jane8  阅读(41)  评论(0)    收藏  举报