while문 - #1110: 더하기 사이클 python3
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
문제
N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.
풀이
a = int(input())
origin = a
attempt = 0
while 1 :
attempt += 1
x = a//10
y = a%10
z = x+y
new_a = 10*y + z%10
if origin != new_a :
a = new_a
else :
break
print(attempt)
a = x * 10 + y 입니다.
x + y = z가 사이클이 됩니다.
새로운 new_a를 만들어서 orginal(첫 a)와 대조해 맞으면 while문을 종료하고, 틀리면 a를 갱신해줍니다.
횟수는 attempt로 반복문이 진행될 때마다 1씩 증가합니다.
'BAEKJOON > Python3' 카테고리의 다른 글
| 백준 #5543: 상근날드 (0) | 2020.07.31 |
|---|---|
| 백준 #10039: 평균 점수 (0) | 2020.07.31 |
| 백준 #10951: A+B -4 (0) | 2020.07.30 |
| 백준 #10952: A+B -5 (0) | 2020.07.30 |
| 백준 #10871: X보다 작은 수 (0) | 2020.07.29 |