공룡호가 사는 세상 이야기

다각형의 모양으로 배열되는 점의 수를 삼각수, 사각수, 오각수라 한다. 입력받은 숫자가 오각수 인지 여부를 판별하는 프로그램을 작성하시오.

삼각수
N개의 점을 연결하여, 삼각형을 만들 수 있다면, N은 삼각수라 한다.
  ㅇ
N=3, 3은 삼각수이다. 3보다 큰 최소의 삼각수는 6이다.

사각수
N개의 점을 연결하여, 사각형을 만들 수 있다면, N은 사각수라 한다.
ㅇ ㅇ
ㅇ ㅇ N=4, 4는 사각수이다. 4보다 큰 최소의 사각수는 9이다.

오각수
N개의 점을 연결하여, 오각형을 만들 수 있다면, N은 오각수라 한다.
N=5, 12, N은 오각수이다.

입력받은 숫자가 오각수인지 아닌지를 판별하는 프로그램을 작성하시오.

#include <stdio.h>

char distinction(int n)
{
int pentagon, mid_n = 0;

for(int i = 2; i < n; i++)
{
for(int j = 1; j < i; j++)
mid_n += j;

pentagon = (i * i) + mid_n; //make pentagon series.

if(n == pentagon) //comparison.
return 'Y';

pentagon, mid_n = 0; //ReInitialize
}
return 'N'; //not find
}

void main(void)
{
int n;
scanf("%d", &n);

char result = distinction(n);

printf("\n%d %c\n\n", n, result);
}

'프로그래밍' 카테고리의 다른 글

ACM 10110 Light, More Light  (0) 2006.01.13
ACM 100 3n+1 Problem  (2) 2006.01.10
Merge Sorting Algorithm.  (0) 2006.01.10
Distribution Counting(분포수 세기)  (0) 2006.01.09
Shell Sort Algorithm.  (0) 2006.01.09