我想解决codewars网站上的算法。作为一名初学者,我很难实现各种编程技术,缺乏基本的编程概念,如范围,提升等。无论如何,我决心解决问题。如何正确实现递归算法?
的说明说:
写功能,持久性,这发生在一个正参数NUM并返回其乘持久性,这是你必须乘位数NUM的次数,直到你达到单个数字。
persistence(39) === 3 // because 3*9 = 27, 2*7 = 14, 1*4=4
// and 4 has only one digit
persistence(999) === 4 // because 9*9*9 = 729, 7*2*9 = 126,
// 1*2*6 = 12, and finally 1*2 = 2
persistence(4) === 0 // because 4 is already a one-digit number
现在我只是想实现这一目标的结果3*9 = 27, 2*7 = 14, 1*4=4
但是我被困。我知道我错过了一些事情,请给我一些宝贵的建议!
我的代码如下所示:
function persistence(num) {
var total = 1;
var step = 0;
var number = multiple(num);
while (step < 3) {
for (var i = 0; i < number.length; i++) {
total *= splitNumbers[i];
}
multiple(number);
step += 1;
}
}
function multiple(num) {
var splitNumbers = num.toString().split('');
var a = splitNumbers[0];
var b = splitNumbers[1];
return a * b;
}
persistence(39);
*号*是一个数字。数字没有长度属性,所以'我
RobG
好的,谢谢你,我没注意到)) – NZMAI