I'm trying to solve the algorithm on codewars website. As a beginner i experience difficulty to implement various programming technique and lack basic programming concepts such as scoping, hoisting and so on. Anyway i'm determined to solve the problem.
The instructions says:
Write a function, persistence, that takes in a positive parameter num and returns its multiplicative persistence, which is the number of times you must multiply the digits in num until you reach a single digit.
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
For now i just want to achive this result 3*9 = 27, 2*7 = 14, 1*4=4 However i got stuck. I know i miss something, please give me some valuable suggestion!
My code looks like this:
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);
i < number.lengthwill set the value of i to undefined. BTW, this isn't recursion. ;-)