gpt4 book ai didi

javascript - 将两个小功能合并为一个

转载 作者:行者123 更新时间:2023-12-01 00:32:48 24 4
gpt4 key购买 nike

所以我试图“编写一个函数 Single() ,它接受一个数字并返回必须将 num 中的数字相乘才能达到单个数字的次数。例如 Single(456)//4*5 *6=120, 1*2*0=0//需要两次循环才能达到个位数,因此返回为2。

我的问题是现在我必须输入一组单独的数字而不是数字。所以我可能需要结合这两个功能。

function numberToArray(num) {
var tmpString = num.toString();
var tempArray = [];
for (var i = 0; i < tmpString.length; i++) {
tempArray.push(tmpString[i]);
}
return tempArray;
}

function reachSingle(tempArray) {
var count = 0;
var k = 1;
for (var i = 0; i < tempArray.length; i++) {
k *= tempArray[i];
}
count++;
if (k <= 10) return count;
else {
var newArray = numberToArray(k);
return count + reachSingle(newArray);
}
}

document.write(reachSingle([2, 9, 3, 7, 6]));

最佳答案

您可以采用递归方法,对小于 10 的数字设置退出条件,并在本例中返回零。否则返回数字乘积调用结果加一。

function reachSingle(n) {
if (n < 10) return 0;
return 1 + reachSingle(Array.from(n.toString()).reduce((a, b) => a * b));
}


console.log(reachSingle(29376)); // 4

关于javascript - 将两个小功能合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58367553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com