[백준] 1110번

park jinwoo·2022년 12월 18일
0

백준

목록 보기
53/94

https://www.acmicpc.net/problem/1110

26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.

위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.

<script>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

int main(void) {

    int a, b, c, origin, input;
    int count = 0;
    // while문을 몇번 반복한지를 계산할 변수
    int d = -1; 
    /* 
       input(새로운 값)에 들어갈 변수, while문을 위해 0(false)이 아니고, 
       origin과 같으면 while문이 실행이 안되기에, 0 <= d <= 99 인 범위의 0이 아닌 값을 지정한다.
    */ 

    scanf("%d", &input);
    origin = input; 
    // 원본값을 알아야 끝이 나기에 원본값을 origin 변수에 저장해둔다.

    while (d != origin) {
    // 새로운 값 d가 원본값과 같지 않다면 반복하는 반복문
        a = input / 10; // 10의자리 값
        b = input % 10; // 1의자리 값
        c = (a + b) % 10; 
        // 10의 자리와 1의 자리를 더한 후 가장 오른쪽(1의 자리)의 값
        d = (b * 10) + c;
        // b를 10의자리로, c를 1의 자리로 가지는 변수 d
        input = d;
        // d를 input(새로운 값)에 저장한다.
        count++;
        // while문이 1번 반복할때마다, 1씩 증가한다.
    }

    printf("%d", count);

    return 0;
}
</script>

0개의 댓글