Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 문자열숫자를 숫자로
- HEAD
- 십진수 8진수
- 아스키코드
- meta charset=
- 마법이라고 불러도 좋을까?
- ㅇ
- 히라이켄
- 백준4344번
- html
- Official髭男dism
- 백준 8958번
- 자료형
- 魔法っていっていいかな
- 平井堅
- 異端なスター
- 아스키코드로 숫자 넣기
- body
- 십진수 16진수
- 정수와 상수
- 백준 11720
- React.js
- !doctype html
- 오버플로우
Archives
- Today
- Total
갓비니
2020/04/12 코딩 문제 연습 (7단계 / 백준 4673번, 생성자와 셀프넘버) C++ 본문
<4673번>
여기서 셀프넘버란
어떤 수와 어떤 수의 합으로 만들어질 수 없는 수를 뜻한다.
예를들어 1은 -> 어떤 수의 합으로 만들어 질 수 없다.
2는 -> 1+1 으로 만들어질 수 있다 / 1은 2의 생성자이다.
3은 -> 불가능
4는 -> 2+2로 가능 / 2는 4의 생성자이다.
.
.
.
==> 재료가 되는 수가 없는 수 : 셀프 넘버
예를 들어, 2나 4는 재료가 있으니까 셀프넘버가 아님.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include<iostream>
using namespace std;
int d(int n);
int main() {
int is_selfnum[100000] = { 0 };
for (int i = 1; i < 10000; i++) {
is_selfnum[i+d(i)]++;
}
for (int i = 1; i < 10000; i++) {
// printf("is_selfnum[%d]=%d\n", i, is_selfnum[i]);
if ((is_selfnum[(i)]) == false)printf("%d\n", i);
}
}
int d(int n) {
if (n < 10) return n; // 주어진 수가 한자리일 때
else if(n<100) return (n / 10) + (n % 10); // 주어진 수가 두자리일 때
else if (n < 1000) return ((n / 100) + d(n % 100)); // 주어진 수가 세자리일 때
else if (n < 10000) return (n / 1000) + d((n % 1000)); //주어진 수가 네자리일 때
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
처음에 12번째 라인에서, if ((is_selfnum[d(i)]) == false)printf("%d\n", i);
로 해놓고 왜 안되지? 이러고 있었다.....
d(i)가 아니라 i를 넣었어야 하는건데...
예를들어 잘못 출력된 10의 경우 생성자를 가지지 못한 친구인데
is_selfnum[d(10)]이면 ->020 이라는 값을 출력해버린다. 뭔가 꼬여버린다는 것이다.
'Programming > 코딩 문제 풀이' 카테고리의 다른 글
2020/04/14 코딩 문제 연습 (7단계 / 백준 11654번) C++ 아스키코드 char형 숫자를 int로 변환하는 방법 (0) | 2020.04.15 |
---|---|
2020/04/13 코딩 문제 연습 (7단계 / 백준 1065번) C++ (0) | 2020.04.13 |
2020/04/12 코딩 문제 연습(1) (코드업 100제) (0) | 2020.04.12 |
2020/04/11 코딩 문제 연습 (7단계 / 백준 15596번, 함수 - C++ 구현이 어려움) (0) | 2020.04.11 |
2020/04/10 코딩 문제 연습 (5단계 / 백준 10996번 - 왠지 어려운 문제) C++ (0) | 2020.04.10 |