양수 n이 있다고 가정하고 모든 자릿수를 더하여 새 숫자를 얻습니다. 이제 10 미만이 될 때까지 이 작업을 반복합니다.
따라서 입력이 9625와 같으면 출력은 4가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- solve() 메서드를 정의하면 n이 걸립니다.
- n <10이면
- 반환 n
- s :=0
- l :=(log(n) 밑 10 + 1)의 바닥
- l> 0일 때 수행
- s :=s + (n 모드 10)
- n :=n / 10의 몫
- l :=l - 1
- 반환 해결
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
import math class Solution: def solve(self, n): if n < 10: return n s = 0 l = math.floor(math.log(n, 10) + 1) while l > 0: s += n % 10 n //= 10 l -= 1 return self.solve(s) ob = Solution() print(ob.solve(9625))
입력
9625
출력
4