숫자 n이 있다고 가정합니다. 이 숫자의 슈퍼 자릿수를 찾아야 합니다. 한 자리 숫자의 슈퍼 자리는 숫자 자체이지만 여러 자리 숫자의 경우 슈퍼 자리는 합이 한 자리 숫자가 될 때까지 반복적으로 모든 숫자의 합입니다.
따라서 입력이 n =513682와 같으면 (5+1+3+6+8+2) =25, (2 + 5) =7이기 때문에 출력은 7이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- s :=0
- n> 0 또는 s> 9일 때 수행
- n이 0과 같으면
- n :=s
- s :=0
- s :=s + n 모드 10
- n :=n/10의 하한값
- n이 0과 같으면
- 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(n): s = 0 while(n > 0 or s > 9): if n == 0: n = s s = 0 s += n % 10 n //= 10 return s n = 513682 print(solve(n))
입력
513682
출력
7