https://www.acmicpc.net/problem/4673
d(n)을 하나의 함수라고 보았을때
d(n)을 구현해서 10000까지의 모든 숫자를 d(n) 함수에 넣어 결과를 구했다.
그리고 10000의 크기를 가진 배열 NumArray[100000](초기값 0)을 만들어
d(n)의 값이 10000보다 작은 경우에 d(n)의 결과값이 index인 NumArray에 1값을 입력했다.
NumArray[d(n)] =1
이렇게.
그리고 끝까지 값이 0인 index들만 출력했다. 끝.
<<코드>>
#include <iostream>
using namespace std;
int d(int Num){
int DResult=Num;
int Try = 1;
while(Num != 0) {
DResult += Num%10;
Num = Num/(10*Try);
}
return DResult;
/// 문제에 나오는 함수 구현
}
int main() {
int NumArray[10000] ={0,};
for(int Num=0; Num<10000; ++Num){
int Result = d(Num);
if (Result < 10000){
NumArray[Result] = 1;
}
}
/// 셀프 넘버가 아닌 숫자가 index인 array에 1을 넣음
for (int Num =0; Num <10000; ++Num){
if (NumArray[Num] != 1){
cout << Num << "\n";
}
}
/// 1이 아닌 index를 모두 출력
}
<<GitHub>>
https://github.com/J2on/BaekjoonOnlineJudge/blob/master/Code/BaekJoon_4673.cpp
집에 가고 싶어
< 백준 BaekJoon : 11654번 아스키코드 > C++ (0) | 2021.10.01 |
---|---|
< 백준 BaekJoon : 15596번 정수 N개의 합 > C++ (0) | 2021.10.01 |
< 백준 BaekJoon : 4344번 평균은 넘겠지 > C++ (0) | 2021.09.25 |
< 백준 BaekJoon : 8958번 OX퀴즈 > C++ (0) | 2021.09.25 |
< 백준 BaekJoon : 3052번 나머지 > C++ (0) | 2021.09.19 |
댓글 영역