编程小练习--回文数链长

题:

一个数加上他颠倒过来的数,直到最终结果是个回文数,看需要几步。

例如: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()将数组倒叙 -> 组合成字符串 -> 转化成数字
posted @ 2018-06-05 11:56  王利r  阅读(208)  评论(0编辑  收藏  举报