본문 바로가기

백준/C++

[C++] 백준 2145번 - 숫자 놀이

728x90

 

 

문제 2145번

https://www.acmicpc.net/problem/2145

 

 

n의 각 자릿수를 더하기 위해 %로 한자리씩 더하고 /로 다음 자릿수로 넘어간다. 이때 한자리만 남아 n을 10으로 나눴을때 몫은 0이 되기 때문에 0보다 클동안만 반복문을 실행해준다. 여기서 끝이 아니라 한자리만 남을 때까지 이 규칙을 반복해야하기 때문에 n이 9보다 클(9보다 크면 두자리수)동안 반복해준다. 그렇게 나온 temp를 n에 넣어서 n을 출력해준다.

 

이것을 n에 0이 입력되기 전까지 반복해준다.

 

#include <iostream>
using namespace std;

int main() {
	int n;
	while (1) {
		cin >> n;
		if (n == 0) {
			break;
		}
		else {
			while (n > 9) {
				int temp = 0;
				while (n > 0) {
					temp += n % 10;
					n /= 10;
				}
				n = temp;
			}
			cout << n << '\n';
		}
	}
	return 0;
}

 

 

 

728x90

'백준 > C++' 카테고리의 다른 글

[C++] 백준 1927번 - 최소 힙  (0) 2024.08.18
[C++] 백준 11279번 - 최대 힙  (0) 2024.08.16
[C++] 백준 1681번 - 줄 세우기  (0) 2024.08.14
[C++] 백준 3004번 - 체스판 조각  (0) 2024.08.11
[C++] 백준 1550번 - 16진수  (0) 2024.08.10