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 |