상세 컨텐츠

본문 제목

C 언어 예제, 순서쌍 a,b,c 구하기

컴퓨터 관련/C 언어 예제

by 열정과 함께 2013. 8. 14. 16:16

본문

문제는 이렇다.

a + b + c = 2000 이고, a, b, c 는 각각 a>b>c 를 만족하는 자연수일때, 가능한 a, b, c 의 수를 구하시오.


목표는 이렇게 만드는 것이다.

코드는 이렇다.


#include <stdio.h>

int main()

{

int i,j,k,l=0;

printf("a+b+c = 2000 일때, a>b>c 를 만족하는 자연수 의 경우의 수를 구하시오. \n");

for(i=1;i<=1998;i++)

{

for(j=1;i+j<=1999;j++)

{

k=2000 -i-j;

if(i>j)

{

if(j>k)

{

l = l +1;

}

}

}

}

printf("답은 %d \n", l);

return 0;

}


막상 경우의 수를 구하라고 하니 처음에는 굉장히 난감했는데, 조건을 첨가해서 조금 세면 된다. 일단.......


#include <stdio.h>

int main()

{

int i,j,k,l=0;

printf("a+b+c = 2000 일때, a>b>c 를 만족하는 자연수 의 경우의 수를 구하시오. \n");

for(i=1;i<=1998;i++) // 왜 1998 이냐 하면, i 가 1999 이면 2000 을 세 덩이로 자르는 것 //자체가 불가능해지기 때문이다.

{

for(j=1;i+j<=1999;j++)//마찬가지. i+j 는 2000 이 될 수 없다. 그러면 셋으로 나눌 //수가 없으니까.

{

k=2000 -i-j; //i, j 가 정해진 순간, k 도 정해진다.

if(i>j)

{

if(j>k)

{

l = l +1; //그리고 조건이 맞을 때만 1씩 더해주면 끝!

}

}

}

}

printf("답은 %d \n", l);

return 0;

}

관련글 더보기

댓글 영역