神奇的利克瑞尔数:196 【大数加法】【回文数】

微信搜索:编程笔记本微信搜索:编程笔记本微信搜索:编程笔记本点击上方蓝字关注我,我们一起学编程欢迎小伙伴们分享、转载、私信、赞赏今天要跟小伙伴们分享神奇的数字:196。在介绍这个神奇的数字之前,我们先来回顾一下回文数。回文数:正读与倒读为同一个数字。 譬如,12321 就是一个回文数。这个神奇的数字就与回文数有关。有人发现,**几乎所有的自然数,将其自身与自身的倒序数相加,再对得到的和重复这一过程,最终总会得到一个回文数。**不同的数字所需要的循环次数不同。12 只需 1 步即可
摘要由CSDN通过智能技术生成

微信搜索:编程笔记本
微信搜索:编程笔记本
微信搜索:编程笔记本

点击上方蓝字关注我,我们一起学编程
欢迎小伙伴们分享、转载、私信、赞赏

今天要跟小伙伴们分享神奇的数字:196
在介绍这个神奇的数字之前,我们先来回顾一下回文数

回文数:正读与倒读为同一个数字。 譬如,12321 就是一个回文数。

这个神奇的数字就与回文数有关。有人发现,**几乎所有的自然数,将其自身与自身的倒序数相加,再对得到的和重复这一过程,最终总会得到一个回文数。**不同的数字所需要的循环次数不同。

  • 12 只需 1 步即可得到相应的回文数:12 + 21 = 33
  • 156 需要 3 步才能得到相应的回文数:156 + 651 = 807807 + 708 = 15151515 + 5151 = 6666

到目前为止,人类计算能力所能发现的需要最多循环次数的数为 1186060307891929990 ,它需要循环操作 261 次才能得到回文数。

下面该 196 登场了!

就是这么一个不起眼的数字,似乎打破了上面所描述的近乎完美的数字规律。曾经,有人将其运算了将近 7 万步,仍未能活得到其回文数。后来,有人修改了算法,更是算到了 2.89 亿步,仍然没能找到回文数。这就是一个著名的利克瑞尔数

利克瑞尔数(Lychrel Number)指的是将该数与将该数各数位逆序翻转后形成的新数相加、并将此过程反复迭代后,结果永远无法是一个回文数的自然数。


利克瑞尔数的介绍到底就结束了,不知道各位小伙伴们有没有一种意犹未尽的感觉呢?是不是少了点什么?
对嘛,写个程序跑一下嘛!

微信搜索:编程笔记本
微信搜索:编程笔记本
微信搜索:编程笔记本

首先,我们需要一个获取逆序数的子程序

int reverse(int positive)
{
   
    int last_digit;
    int reverse_num = 0;

    while (positive) {
   
        last_digit = positive % 10;

        reverse_num *= 10;
        reverse_num += last_digit;

        positive /= 10;
    }

    return reverse_num;
}

有了这个子程序后,我们就能很轻松地对一些数字进行验证了,

#include <stdio.h>

int main()
{
   
    int num;
    int step = 0;

    printf("Please input the number: ");
    scanf("%d", &num);

    while (num != reverse(num)) {
   
        num += reverse(num);
        ++step;
    }

    printf
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值