C, C++/C
[C언어] 카프리카수 구하기, 네 자리 Kaprika수 구하기 프로그램
SeongJo
2020. 12. 29. 22:32
반응형
안녕하세요 성조입니다.
이전에 풀었던 카프리카 수(Kaprika) 문제에 대해서 갖고 왔습니다.
ko.wikipedia.org/wiki/%EC%B9%B4%ED%94%84%EB%A6%AC%EC%B9%B4_%EC%88%98
카프리카 수 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 수학에서 카프리카 수(Kaprekar number)는 인도의 수학자 카프리카에 의해 정의된 수로 어떤 수의 제곱수를 두 부분으로 나누어 더하였을 때 다시 원래의 수가 되는
ko.wikipedia.org
사실문제를 풀기 전에는 카프리카 수가 뭔지 모르고 봤기 때문에 위키백과에 검색해서 아 이게 이런 숫자들을 의미하는 것이구나 하고 이해한 뒤 문제를 풀었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <stdio.h>
#include <math.h> //pow함수를 사용하기 위해서 가지고 왔음.
unsigned short main(){
// x = 앞 두자리 y = 뒤 두자리 z = 두 자리를 더해서 저장되는 값
unsigned short x = 0, y = 0, z = 0;
printf("\n");
// 조건에서 4자리 수 까지라 했으므로 1000~ 9999수를 돌려줍니다.
for (unsigned short i = 1000; i < 10000; i++){
//앞 두자리 1000/100 = 앞의 2자리
x = i / 100;
//뒤 두자리 1000%100 = 뒤의 2자리
y = i % 100;
// 앞 2자리 + 뒤 2자리
z = x + y;
// z의 제곱 수 가 4자리 원상태를 만족하는 경우를 출력해준다.
if (pow(z, 2) == i){
printf("\t");
printf("%d", i);
printf("\n");
}
}
}
|
cs |
문제 자체가 크게 어려운 것이 아니라서 주석을 달아서 설명을 처리했습니다.
주석만 보고도 코드가 어느 정도..? 이해가 가능하실 것이라 봅니다.
다음 포스팅 때 뵙겠습니다.
반응형