题:
一个数加上他颠倒过来的数,直到最终结果是个回文数,看需要几步。
例如:87 + 78 = 165; 165 + 561 = 726; 726 + 627 = 1353; 1353 + 3531 = 4884 结果为 4。
答:
var palindromeChainLength = function(n) { var m = reverseNum (n); if(m===n) { return 0; } else { return 1 + palindromeChainLength(m+n); } }; function reverseNum (n) { return parseInt(n.toString().split("").reverse().join("")); }
判断调换前后数字是否相等,是的话返回0,不是递归判断两数字和,结果+1。 reverseNum 方法是把一个数字颠倒过来:
转化成字符串 -> 字符串转化为数组 -> reverse()将数组倒叙 -> 组合成字符串 -> 转化成数字
原文地址:https://www.cnblogs.com/forlong/p/9139029.html
时间: 2024-10-25 00:44:39