function add(num) {
var a = num.toString().split('')
var b = 0;
for(i=0;i<a.length;i++){
b += Number(a[i])
}
if(b.toString().split('').length == 1){
return b
}
else{return add(b)}
}
document.write(add(73)+'<br>'); //7+3=10 | 1+0=1
document.write(add(9980)); //9+9+8+0=26 | 2+6=8
&#13;
请帮助我,我有一个代码,但我想递归这个代码,但我被卡住了...感谢您的回复
答案 0 :(得分:1)
虽然您已经有了递归,但您可以使用Array#reduce
对数字求和并检查值而不是字符串来调用递归。
function add(num) {
var s = num.toString().split('').reduce(function (a, b) { return a + +b; }, 0);
return s > 9 ? add(s) : s;
}
console.log(add(73));
console.log(add(9980));
答案 1 :(得分:-1)
function add(num) {
if(num < 10) {
return num;
}
var sum = 0;
while(num !== 0) {
sum += (num%10);
num = parseInt(num/10);
}
return add(sum);
}
document.write(add(73)+'<br>'); //7+3=10 | 1+0=1
document.write(add(9980)); //9+9+8+0=26 | 2+6=8
&#13;