본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ)코딩 1110번 : 더하기 사이클

반응형

www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

그대로 구현하는 문제였습니다.

 

Code

#include <iostream>
using namespace std;

void cycle(int baseNum,int num, int ten, int one)
{
    
    int cnt = 1;
    while (num != baseNum)
    {
         if (ten + one < 10)
        {
            num = one * 10 + ten + one;
        }
        else if (ten + one >= 10)
        {
            num = one * 10 + (ten + one) % 10;
        }
        
        ten = num / 10;
        one = num % 10;
        cnt++;
    }
    cout << cnt;
}
int main() {
    int num,baseNum, ten, one;
    cin >> baseNum;
    
    num = baseNum;
    ten = baseNum / 10;//10의 자리
    one = baseNum % 10;//1의 자리
    if (ten + one < 10)
    {
        num = one * 10 + ten + one;
    }
    else if (ten + one >= 10)
    {
        num = one * 10 + (ten + one) % 10;
    }
    ten = num / 10;
    one = num % 10;
    
    cycle(baseNum, num, ten, one);
}