궤도

[백준] 1110번 : 더하기 사이클 본문

💻 현생/⛓ 알고리즘

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

영이오 2020. 10. 13. 14:46

문제

 


풀이

 

일단 기존의 수가 손상되면 안되니까 N을 temp에 저장한다. 그리고 연산을 통해 얻은 새로운 수를 new_num에 저장하고 N과 new_num이 같을 때까지 while문을 돈다. N_f, N_b는 각각 십의 자리 수와 일의 자리 수다. 적당히 문제보면서 연산 만들어주고 while문 한 번 돌 때마다 count 체크해준다.


소스코드

 

#include <iostream>
using namespace std;

int main() {
	int N, count = 0, new_num = -1, sum, temp;
	int N_f, N_b;

	cin >> N;
	temp = N;
	while (N != new_num) {
		if (temp < 10) {
			N_f = 0;
			N_b = temp;
		}
		else {
			N_f = temp / 10;
			N_b = temp % 10;
		}
		sum = N_f + N_b;
		new_num = N_b * 10 + sum % 10;
		temp = new_num;
		count++;
	}
	cout << count << endl;
}
Comments