백준 1110_더하기 사이클[C++]
본문 바로가기
Algorithm/Python, C++

백준 1110_더하기 사이클[C++]

by liveloper jay 2022. 1. 15.

문제

 

 

풀이

 문제에 주어진대로 숫자가 26일 경우 2+6=8 과 1의자리 수인 6을 10의 자리로 이동하여 68을 만들고 이와 같은 과정을 반복하여 입력된 수가 나올때까지 몇번의 사이클이 반복되었는지를 출력하는 문제입니다. 그렇기 때문에 반복문이 계속 수행되게 해주고, 같은 수가 나올경우 break를 사용하여 반복문을 빠져 나오는 방식으로 문제 풀이를 진행해 주면 됩니다.

 

변수는 10의 자리수가 무엇인지 나타내는 a , 1의 자리 수를 나타내는 b, a와 b를 합쳐서 나온 값을 나타내주는 c와 계산의 결과로 나온 새로운 수를 나타내는 d 로 구성되어 있습니다. 여기서 c의 값이 10이 넘을 경우 10의 자리를 버리고 1의 자리만 나오게 해주면 원하는 결과를 얻을 수 있습니다.  

 

 

 

소스코드

#include <iostream>
using namespace std;


int main()
{
    int a,b,c,d,insert,count=0;
    cin>>insert;
    int temp=insert;
    while(1){
        a=temp/10;
        b=temp%10;
        c=(a+b)%10;
        d=b*10+c;
        temp=d;
        count ++;
        if(d== insert) break;
        
    } 
    cout << count;
}

 

저는 c의 값을 구하는 과정에서 10을 넘는 경우의 수에 대한 부분을 처리하지 않아 틀렸었습니다....ㅠㅠ

'Algorithm > Python, C++' 카테고리의 다른 글

백준 10952_A+B - 5[C++]  (0) 2022.01.15
백준 10951_A+B - 4[C++]  (0) 2022.01.15
백준 15552_빠른 A+B[C++]  (0) 2022.01.13
백준 11022_A+B - 8[C++]  (0) 2022.01.13
백준 11021_A+B - 7[C++]  (0) 2022.01.13

댓글