반응형
Description:
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.
For example (Input --> Output):
39 --> 3 (because 3*9 = 27, 2*7 = 14, 1*4 = 4 and 4 has only one digit)
999 --> 4 (because 9*9*9 = 729, 7*2*9 = 126, 1*2*6 = 12, and finally 1*2 = 2)
4 --> 0 (because 4 is already a one-digit number)
Solution:
1. Separate and multiply by the number of digits.
2. Repeat until the multiplied value is a single digit.
3. Count the number of repetitions for each repetition.
4. Returns the last iteration count.
import math
def persistence(n):
def prod(n, count=1):
n = math.prod([int(i) for i in str(n)])
if n < 10:
return count
count += 1
return prod(n, count)
return 0 if n < 10 else prod(n)
A recursive function was used.
math.prod() is a method that multiplies array elements.
반응형
'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글
Dashatize it (0) | 2022.03.22 |
---|---|
Data Reverse (0) | 2022.03.21 |
자료구조 _ Hash table (0) | 2022.03.20 |
자료구조 _ Queue 그리고 Stack (0) | 2022.03.20 |
Multiplication table (0) | 2022.03.19 |