给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
leetcode的各位相加问题,我的思路是将数字分割然后相加,递归,小于10的数字return出去
相关代码
var addDigits = function(num) {
let str = num+=''
let len = str.split('').length;
let numTemp = 0
if(num < 10) {
console.log(num)//2
return num
} else {
for (let i =0; i<len;i++) {
numTemp += parseInt(str.split('')[i], 10)
}
addDigits(numTemp)
}
};
console.log(addDigits(38)//undefined
你期待的结果是什么?实际看到的错误信息又是什么?
正确答案应为2,实际上返回出来的是undefined,但是打印出来的也是2
递归调用结果没有返回,肯定为undefined;修改为下面的: