Computer Science/C++
백준 C++ | #12 BOJ1110 더하기 사이클 C++ 문제 풀이
토마토.
2022. 8. 11. 17:45
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
#include <iostream>
int main() {
// 첫째 줄에 N이 주어진다.
int n;
std::cin >> n;
// 처음에 주어진 수의 가장 오른쪽 자리 수와
// 구한 합의 가장 오른쪽 자리 수를 이어 붙여 새로운 수를 만들 수 있다.
// 몇 번만에 원래 수로 돌아올 수 있을까?
int tmp = n;
int next = -1, trial = 0;
while (next != n) {
// 각 자리 숫자를 더한다
int sumn = tmp % 10 + tmp / 10;
// 처음에 주어진 수의 가장 오른쪽 자리 수와
// 구한 합의 가장 오른쪽 자리 수를 이어 붙여 새로운 수를 만들 수 있다.
next = 10 * (tmp % 10 )+ sumn % 10;
tmp = next;
trial++;
}
std::cout << trial << std::endl;
return 0;
}