C++成长之路(1)——判断一个数是否为回文数

 所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的。

那么如何编程来判断一个数是否为回文数呢?

///判断一个数是否为回文数
//思路:从个位开始,依次取出每位上的数,然后反顺序输出,与原数比较即可
bool symm(unsigned n)
{
    unsigned i = n;
    unsigned m = 0;
    while(i > 0)
    {
        m = m * 10 + i % 10;//取出该位上的数字
        i /= 10;//降低位
    }
    return(m == n);
}

思考题:

寻找并输出11~999之间的数m,它满足m、m^2、m^3均为回文数。例如:11满足条件:11^2=121, 11^3=1331

代码如下:

#include <iostream>
using namespace std;

bool symm(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 i = 11; i <= 999; i++)
    {
        if(symm(i) && symm(i * i) && symm(i * i * i))
        {
            cout << "m = " << i << '\t'
                 << "m ^ 2 = " << i * i << '\t'
                 << "m ^ 3 = " << i * i * i << endl;
        }
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheeky_man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值