#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月出版.