Code Beat

[Code Tree] 더하기 사이클 본문

Code/Code Tree

[Code Tree] 더하기 사이클

코-빗 2024. 2. 25. 18:13
728x90

0보다 크거나 같고 99보다 작거나 같은 정수가 주어질 때, 다음과 같은 연산을 할 수 있습니다.

  1. 주어진 수의 각 자리의 수를 더합니다.
  2. 주어진 수의 일의자리 수와 1번에서 구한 수의 일의자리 수를 이어붙여 새로운 수를 만듭니다.

이러한 연산을 계속 반복하다보면 어느 시점에는 처음 주어진 수로 들어올 수 있습니다.

자연수 n이 주어졌을 때, n의 사이클의 길이를 구하는 프로그램을 작성해보세요.

 

입력 형식

첫 번째 줄에 n이 주어집니다.

  • 0 ≤ n ≤ 99

출력 형식

첫 번째 줄에 n의 사이클 길이를 출력합니다.

입출력 예제

예제1

입력:

55
 

출력:

3
 

예제2

입력:

1
 

출력:

60

 

 

#include <iostream>

using namespace std;

int main() {
    int n;
    cin >> n;
   
    int n1, n2, n3 = -1;
    n1 = n;

    int cnt = 0;
    while(n3 != n){
        n2 = (n1 / 10) + (n1 % 10);
        n3 = ((n1 % 10) * 10) + (n2 % 10);
        n1 = n3;
        cnt++;
    }

    cout << cnt;
    return 0;
}

 

*n이 0일 경우를 대비하여 n3를 -1로 초기화 하고 while 반복문을 시작했다.

728x90