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

문제 자체가 크게 어려운 것이 아니라서 주석을 달아서 설명을 처리했습니다.

주석만 보고도 코드가 어느 정도..? 이해가 가능하실 것이라 봅니다.

 


다음 포스팅 때 뵙겠습니다.

반응형