백준/백준 단계별 문제풀이

백준 1110번 (C++)

FDEE 2020. 8. 20. 21:36

www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

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

www.acmicpc.net

 

<답안>

#include <iostream>

using namespace std;

int main() {

    int num = 0, temp = 0;

    int a = 0, b = 0, newNum = -1, count = 0;

    cin>>num;

    temp = num;

    

    while(num != newNum)

    {

        a = temp/10;

        b = temp%10;

        newNum = a+b;

        newNum = newNum%10;

        newNum = b*10 + newNum;

        temp = newNum;

        count++;

    }

    cout<<count;

    

    return 0;

}

 

<설명>

10의자리수(a) : 입력수 / 10으로 계산

1의자리수(b) : 입력수 % 10으로 계산

새로운 수의 1의자리수(newNum) : 더한값을 %10으로 계산

새로운 수 결과(newNum) : b*10 + newNum

 

입력한 값과 newNum이 같은경우까지 반복하면서 count를 증가시킨다

 

* 새로운 숫자 변수인 newNum을 0으로 초기화하면 틀리는 이상한 현상이 있었다

'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글

백준 5543번 (C++)  (0) 2020.08.20
백준 10039번 (C++)  (0) 2020.08.20
백준 10951번 (C++)  (0) 2020.08.18
백준 10952번 (C++)  (0) 2020.08.18
백준 10871번 (C++)  (0) 2020.08.18