【发布时间】:2020-01-23 17:54:04
【问题描述】:
现在,我们有了这个递归函数:
function digitsMultipication(number) {
let strNumber = number.toString();
let firstNum = parseInt(strNumber[0]);
if(strNumber.length==1){
return firstNum
}else{
let x = ''
for(i=1;i<strNumber.length;i++){
x += strNumber[i]
}
x = parseInt(x)
return firstNum * digitsMultipication(x);
}
}
// TEST CASES
console.log(digitsMultipication(66)); // 36
我们如何编辑这个函数,因为我们希望输出条件是一个数字。 因为 36 仍然是 2 位,我们希望函数再次递归,直到输出为一位,即 8。
66 => 6 * 6 = 36,
36 => 3 * 6 = 18,
18 => 1 * 8 = 8(想要的最终输出)
【问题讨论】:
-
将字符串的第一个数字乘以字符串其余部分的
digitsMultiplication。例如,result("1234") = 1 * result("234") = 1 * 2 * result("34"),等等。您的“基本情况”将是您只有 2 个或更少的剩余数字。 -
我从你的解释中了解到,最终结果是24(1*2*3*4)。但是我们想要的是函数再次递归,直到它得到一位数的结果。因此,最终结果应该是 8 (2*4)。因为 24 仍然是 2 位数
-
签出this。
标签: javascript recursion