티스토리 뷰
1. 문제 요약
양의 정수 n에 대해 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어 d(75) = 75 + 7 + 5 = 87이다.
n을 d(n)의 생성자라고 한다. 예를 들어 33은 39의 생성자이다. (d(33) = 33 + 3 + 3 = 39)
이러한 생성자가 없는 숫자를 셀프 넘버라고 하는데, 10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는
프로그램을 작성하시오.
2. 예제 입력
3. 예제 출력
1 3 5 7 9 20 ... 9971 9982 9993
4. 코드
#include <iostream> using namespace std; int d(int currentNum) // 자릿수 구하기 { int numArr[5] = { 0 }; numArr[0] = currentNum / 10000; numArr[1] = (currentNum % 10000) / 1000; numArr[2] = (currentNum % 1000) / 100; numArr[3] = (currentNum % 100) / 10; numArr[4] = (currentNum % 10); int result = currentNum + numArr[0] + numArr[1] + numArr[2] + numArr[3] + numArr[4]; return result; } int main() { bool isSelfNum[10001] = { 0 }; int n = 1; while (1) { int t = d(n); if (n >= 10000) break; if (t <= 10000) isSelfNum[t] = 1; n++; } for(int i = 1; i < 10000; i++) { if (isSelfNum[i] == 0) { cout << i << endl; } } return 0; }
-> d(n)이 만들어내는 결과 값을 갖는 index를 1로 변경하면, d(n)이 만들어내지 않는 수만 출력이 가능하다.
즉, 생성자가 없는 수의 isSelfNum 배열 값은 0을 유지하게 되므로, index의 값이 0인 index를 출력하면
셀프넘버를 구할 수 있음!
ex) n = 1 이면 d(1) = t = 2, isSelfNum[2] = 1
n = 2 이면 d(2) = t = 4, isSelfNum[4] = 1
n = 3 이면 d(3) = t = 6, isSelfNum[6] = 1 ... 이므로,
1~ 10000 중에 d(n)에 의해 만들어지지 않는 수(1, 3, 7,...) 만 출력이 가능!
'알고리즘(C++) > 백준 알고리즘' 카테고리의 다른 글
11654번 : 아스키코드 (0) | 2018.05.03 |
---|---|
1065번 : 한수 (0) | 2018.05.03 |
15552번 : 빠른 A+B (2) | 2018.04.17 |
1110번 : 더하기 사이클 (0) | 2017.11.19 |
1546번 : 평균 (0) | 2017.11.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 종로프로포즈링추천
- 광명무역센터컨벤션 #본식스냅 #메인스냅 #서브스냅 #촬영후기 #1인작가 #대표작가 #하루그라피
- 종로다이아반지추천
- 부평
- 종로브리달메이
- 본식예복
- 본식맞춤예복
- 부평맛집
- 라레토추천인
- 브리달메이
- Visual Studio
- 브리달메이웨딩밴드
- 브리달메이다이아
- 무한리필
- 광명무역센터컨벤션 dvd
- C++
- 광명 본식 dvd
- 라레토페이백
- 광명 무역센터 블랑논
- 가산디지털단지 맛집
- 냉면
- 가성비예복
- 가성비맞춤정장
- 그래픽카드후기
- 광명무역센터컨벤션
- 롯데리아
- 종로결혼반지추천
- MFC
- 백준알고리즘
- 브리달메이결혼반지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함