백준
(python) 백준 1110 - 더하기 사이클
komizke
2023. 1. 17. 00:00
https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
1. 문제설명
원래 수의 각 자릿수의 합의 일의 자리 숫자 -> 다음 수의 일의 자리 숫자
원래 수의 일의자리 숫자 -> 다음 수의 십의자리 숫자
원래 수가 나올 때까지 반복하며 사이클의 길이를 구하는 문제
2. 문제 풀이
입력 받은 수를 업데이트하는 연산만 해주면 된다.
초기 수로 되돌아 왔을 때 프로그램 종료
ten_number = n % 10
one_number = (n // 10 + n % 10) % 10
#다음 수 업데이트
n = ten_number * 10 + one_number
3. 전체 코드
n = int(input())
origin_result = n
cycle = 0
while True:
ten_number = n % 10 #십의 자리 숫자
one_number = (n // 10 + n % 10) % 10 #일의 자리 숫자
#다음 수 업데이트
n = ten_number * 10 + one_number
#사이클 수 업데이트
cycle += 1
# 한주기 돌았을 때
if n == origin_result:
break
#사이클 수 출력
print(cycle)