[파이썬] 1110번: 더하기싸이클

3311 단어 백준파이썬백준


# 작성자:www.github.com/kchs94
N = int(input())  # 입력
length = 0  # 사이클의 길이를 저장할 변수 설정
first_value = N  # 원래 값을 저장할 변수 선언

while True:
    if 0 <= N < 10:  # N이 10보다 작을 때
        N = N + N * 10  # 첫 번재 N은 각 자리수의 합(total)이고 두 번째 N*10는 첫 번째 자리수를 두 번째 자릿수로 옮긴 것.
    else:   # N이 10보다 크거나 같을 때
        total = N//10 + (N % 10)  # 두 번째 자릿수 값은 몫으로 구하고 첫 번째 자릿수는 나머지로 구한다.
        N = (N % 10) * 10 + (total % 10)  # N = 80 + 4
    length = length + 1
    if N == first_value:  # 원래 값과 새로운 값이 같다면 무한루프틑 탈출한다.
        print(length)
        break;

문제

  • 첫 번째 자리수 값을 구할 수 있나요? --> 나머지 연산자(%)
  • 두 번째 자리수 값을 구할 수 있나요? --> 몫 연산자(//)
  • 첫 번째 자리수 값을 두 번째 자리수로 옮길 수 있나요? --> * 10

좋은 웹페이지 즐겨찾기