Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 한 자리 숫자가 될 때까지 숫자의 합을 찾는 프로그램

<시간/>

양수 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