第三章部分例题(2)

发布时间 2023-04-15 22:42:33作者: 石铁生

例3-4

寻找并输出11~999的数m,它满足m、m的平方,和m的三次放均为回文数。

分析:判断一个数是否为回文数,可以用除以10取余的方法,从最低位开始,依次取出该数的各位数字,然后用最低位充当最高位,判断是否相等。

代码:

#include<iostream>

using namespace std;
bool huiwen(unsigned n )
{
    unsigned i=n;
    unsigned m = 0;
    while (i > 0) {
        m = m * 10 + i % 10;
        i /= 10;
    }
    return m == n;
}
int main()
{
    for (unsigned m = 11; m < 1000; m++)
    {
        if (huiwen(m) && huiwen(m * m) && huiwen(m * m * m))
        {
            cout << m<<" ";
        }
}
    return 0;
}