문제 출처 : https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
풀이 과정
1. 우선 값을 분리하는게 중요합니다. 먼저 입력받은 N을 10의 자리와 1의 자리로 분리하고 그 합을 구했습니다.
2. 합을 구한 후 분리한 1의 자리의 값과 구한 합의 1의 자리를 붙여 새로운 수를 만들었습니다.
3. 가장 처음 입력받은 N과 같아질 때 까지 반복하면 문제를 해결할 수 있습니다.
소스 코드
더보기
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int count = 0;
int temp = n;
while (true)
{
++count;
int first = temp / 10;
int second = temp % 10;
int sum = first + second;
if (first == 0)
{
temp = second * 10 + second;
}
else
{
temp = second*10 + (sum % 10);
}
if(temp == n ) break;
}
cout << count << endl;
}
'백준온라인저지' 카테고리의 다른 글
백준 온라인 저지 1759번 암호 만들기 (0) | 2022.10.05 |
---|---|
2292번 벌집 (0) | 2020.07.31 |
2193번 이친수 (0) | 2020.07.30 |
10828번 스택 (0) | 2020.05.21 |
4344번 평균은 넘겠지 (0) | 2020.05.21 |