编程之战 第一百六一章 编写196算法
作者:程序小猿的小说      更新:2019-05-23

  那么就开始编写吧!

  杨成调出编辑器面板。

  Firstly,心中谨记规则——先翻转,再相加。

  所以,一个对正整数作翻转的函数是必须的。

  因为,结果是要得到回文数。

  所以嘛,一个判断正整数是否是回文数的函数也是必须的。

  这些都是小case,杨成很快就搞定了。

  然后,开始切入正题,怎么编写196算法呢?

  接收一个正整数,对它做翻转。

  和原数相加,得到和。

  如果这个和是回文数,那么就OK,返回结果,终止算法。

  如果不是回文数,将和继续翻转,相加。

  Continue....

  这个过程很简单,反复迭代。

  关键在于考虑“利克瑞尔数”。

  如果超过了一定的时间或范围,应该及时中断。

  否则,就会陷入可怕的死循环。

  杨成的处理是这样:

  一旦当前运算会丢失精度,就返回-1。

  很多语言如果不使用大数计算库,一定数值范围外运算会丢失精度。

  这样确保了小数值范围内求解,不会出现死循环。

  通过以上几个步骤,简易版的196算法就成型了!