728x90
6378번: 디지털 루트
양의 정수 N의 디지털 루트를 구하려면 N을 이루고 있는 모든 자리수를 더해야 한다. 이때, 더한 값이 한 자리 숫자라면, 그 수가 N의 디지털 루트가 된다. 두 자리 이상 숫자인 경우에는 다시 그
www.acmicpc.net
문제 풀이
이 문제는 입력값의 자릿수를 모두 더했을 때 10 이하가 될 때 까지 반복하고 출력하는 문제이다.
맨 처음 입력값을 N이라 할 때, answer = N, tmp = 0으로 값을 초기화 한 후, answer를 10을 나눈 나머지를 tmp에 더해주며 answer는 10으로 계속 나누어준다. 이 과정이 다 끝나면 tmp는 다시 answer가 되고, answer가 10 이상일 경우, 다시 반복을 수행하게 된다.
정답 코드
while True :
N = int(input())
if N == 0 : break
ans = N
while ans >= 10 :
tmp = 0
while ans > 0 :
tmp += ans % 10
ans //= 10
ans = tmp
print(ans)
728x90
'Algorithm > PS' 카테고리의 다른 글
[BOJ/백준] 6721 - Backward numbers [python] (0) | 2023.03.19 |
---|---|
[BOJ/백준] 6437 - Golf [python] (0) | 2023.03.17 |
[BOJ/백준] 6322 - 직각 삼각형의 두 변 [python] (0) | 2023.03.17 |
[BOJ/백준] 6321 - IBM 빼기 1 [python] (0) | 2023.03.17 |
[BOJ/백준] 6249 - TV Reports [python] (0) | 2023.03.17 |