상세 컨텐츠

본문 제목

< 백준 BaekJoon : 4673번 셀프 넘버 > C++

C++/Baekjoon

by J2on 2021. 9. 25. 20:01

본문

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

 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net

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

 

GitHub - J2on/BaekjoonOnlineJudge: My Study

My Study. Contribute to J2on/BaekjoonOnlineJudge development by creating an account on GitHub.

github.com

 

 

 

집에 가고 싶어

관련글 더보기

댓글 영역