<답안>
#include <iostream>
using namespace std;
int d(int n)
{
int result = n;
while(n != 0)
{
result += n%10;
n = n/10;
}
return result;
}
int main() {
bool boolArray[10001] = {false};
int inx;
for(int i=1; i<=10000; i++)
{
inx = d(i);
if(inx <= 10000)
boolArray[inx] = true;
}
for(int i=1; i<=10000; i++)
{
if(!boolArray[i])
cout<<i<<"\n";
}
return 0;
}
<설명>
d(n)함수를 먼저 만들었다
반환값인 result에 n을 더한 뒤 n이 0이될때까지 n%10한 값을 result에 더하고 n/10을 반복한다
그렇게 얻어진 result 값을 반환한다
크기가 10001인 bool형 배열 boolArray[10001]을 선언한다
인덱스 i=1부터 i=10000까지 증가시키면서
d(i)함수 값을 inx에 저장한다
inx값이 10000보다 작은 경우 boolArray[inx] 값을 true, 즉
[inx]위치에 inx값이 d(n) 숫자임을 나타낸다
결과적으로 인덱스 i=1부터 i=10000까지 증가시키면서
boolArray[i]값이 false인 경우 i를 출력 후 개행한다
'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글
백준 11654번 (C++) (0) | 2020.08.21 |
---|---|
백준 1065번 (C++) (0) | 2020.08.21 |
백준 15596번 (C++) (0) | 2020.08.21 |
백준 4344번 (C++) (0) | 2020.08.21 |
백준 8958번 (C++) (0) | 2020.08.21 |