본문 바로가기
  • 행복은 내게서 오는 것!
프로그래밍/C

숫자 사이클 계산기

by ㅍ우주 2022. 4. 1.

정수 A(0~99)를 입력받으면 다음과 같은 연산을 할 수 있다.
먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다.
그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다.

ex) 26

-> 2 + 6 = 8

-> 68, 6 + 8 = 14

-> 84, 8 + 4 = 12

-> 42, 4 + 2 = 6

-> 26

#include <stdio.h>

int main(void) {
    int n;
    printf("사이클이 궁금한 숫자를 입력하시오 : "); // 26
    scanf_s("%d", &n, sizeof(n));
    int num = n;
    int cnt = 0; // 몇번 세는 변수

    while (1) {
        int a = num / 10; // 2
        int b = num % 10; // 6
        int c = (a + b) % 10; // 8
        num = (b * 10) + c; // 68
        cnt ++;
        
        if (n == num)
            break;
    }
    printf("%d", cnt);
}