#T557005. 求一个整数的回文数步数
求一个整数的回文数步数
题目背景
如果一个数从左往右读和从右往左读,是同一个数,则这个数称为回文数。例如121就是回文数。
有人发现,似乎任何自然数,将它自身和它的倒序数相加,再将得到的和与它的倒序数相加,一直重复,最终总会得到一个回文数。
比如12+21=33,12这个数只需要一步就能得到回文数。
再比如265这个数,
265+562=827
827+728=1555
1555+5551=7106
7106+6017=13123
13123+32131=45254
需要五步得到一个回文数。
1186060307891929990是目前发现过的需要最多步操作得到回文数的数,需要261步。
似乎所有的数都能通过有限步骤得到一个回文数,但是196,这个不起眼的数除外。
之前有人已经算到了699万步,之后更是改进了算法得到了2.89亿位的数,仍未得到回文数。人们试图直接证明所有的数可以通过有限操作得到回文数,但都失败了。于是人们把像196这样可能存在的永远不能得到回文数的数称作利克瑞尔数(Lychrel Number),而196,可能就是最小的利克瑞尔数。至于196为什么那么神奇,还没有人能解释。
题目描述
输入一个正整数,输出要经过多少步才能得到一个回文数。
输入格式
输入占一行,为一个正整数n,不超过long long型的范围。测试数据保证不会出现196这种数。
输出格式
输出占一行,为从n出发得到一个回文数所需的步数。
输入输出样例 #1
输入 #1
265
输出 #1
5
输入输出样例 #2
输入 #2
1186060307891929990
输出 #2
261
说明/提示
本题出处
本题源自以下教材的编程习题:王桂平, 周思益, 周迎川著. C++编程与信息学竞赛数学基础, 北京大学出版社, 2025年7月出版.