T287467 05-29-C04-求一个整数的回文数步数(L5)

题目背景

如果一个数从左往右读和从右往左读,是同一个数,则这个数称为回文数。例如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出发得到一个回文数所需的步数。

说明/提示

### 本题出处 本题源自以下教材的编程习题:王桂平, 周祖松, 穆云波, 葛昌威编著. C++趣味编程及算法入门. 北京大学出版社, 2024年出版.