백준 1110번: 더하기 사이클 [c++]

gogowonji·2022년 3월 11일
0

알고리즘

목록 보기
3/7

백준 1110번: 더하기 사이클

//  Created by gogowonji on 2022/03/11.

#include <iostream>
using namespace std;

int main() {
    // insert code here...
    // 백준 1110번
    // in = 입력, r = 결과 저장
    int in, r;
    
    //사이클 수
    int count = 0;
    
    cin >> in;
    
    r = in;
    
    while(1){
        int sum = (r / 10 + r % 10); //각 자리의 합
        int ten = r % 10; // 새로운 결과의 십의 자리 수
        int one = sum % 10; // 새로운 결과의 일의 자리 수
        r = ten*10 + one; // 새로운 결과
        
        count++;
        
        if(r==in)
            break;
            
    }
    cout << count << endl;
    
    return 0;
}

조건을 살펴보면,

1) 입력값 x는 0 <= x <= 99

2) 주어진 수 < 10 이면
앞에 0붙여서 -> 두자리로 만들기
ex) 6 -> 0+(6) = (6) -> 66

3) 각자리 더하기 -> 새로운 결과
일의 자리 + 결과의 일의 자리
-> 반복
-> 원래 수로 사이클 몇?
ex)
26 -> 2+(6) = (8)
68 -> 6+(8) = 1(4)
84 -> 8+(4) = 1(2)
42 -> 4+(2) = (6)
26 <4>

2)에서
if문으로 코드 한 줄 더 만들기 쉬운데,

코드를 참고하면

int sum = (r / 10 + r % 10);

(6/10 = 0) + (6%10 = 6) = 6

if문을 만들지 않아도 결과가 동일하다.

차근차근 해나가면 어렵지 않은 코드였다.
분발...!

profile
개발자를 할까 말까

0개의 댓글