프로그래밍

 3198, 1/160 회원가입  로그인  
   Lunatie
   파스칼 삼각형 관련 학교 과제인데 도움좀 주세요;;

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3384 [복사]


1. 조합을 구하는 프로그램을 짜라
#include<stdio.h>
int main()
   {
           int k;
           int n, r;
           int ncr;
            
            
             while(1)
               {
                 printf("Enter two numbers n and r (but, n >= r) :");
             scanf("%d %d",&n,&r);
                
                 if( n < r)
                         break;
                
                 if(r == 0 || n == r)
                         printf("n C r = 1\n");
                     else
                         {
                  
           for( k = 1, ncr = 1 ; k <= r ; k++)
                      {  ncr = ncr * ((n - k + 1) / k);
                        
                  }
           printf("n C r = %d\n",ncr);}
               }
          
                  printf("Error : n is less than r, End Program");

          
          
          return 0;
   }
이게 일단 제 과제물인데 뭐랄까 코드가 더럽네요.. ㅋㅋ 더 간결하게 할수 있는 방법이 있을까요?

그리고 두번쨰 문제입니다.
n = 0 ~ n = 12 까지로 구성된 파스칼의 삼각형이 출력되도록 프로그램
을 작성하시오. 단, 아래와 같이 출력의 줄맞춤이 되도록 출력문을 작성
하여야 함. (프로그램을 작성할 때에는 n이 임의의 정수일 때에도 동작
하도록 범용적으로 하고 결과만 n=12인 경우를 실행하여 보여줄 것)
  하고 아래 결과가
                                                        1
                                                    1  2   1
                                                1   3    3   1
                                             1   4    6   4    1
이런식으로 12까지 배열이 되있네요
조합을 구하는 프로그램은 여자처자 짯는데 저 프로그램의 경우는 저 빈칸이 문제네요;;
n을 입력받아서 r을 루프안에서 0~n까지 돌리는 프로그램 같은데.. ㅠ
빈칸!!! 으아아아아아앙 ㅠ 도와주셔요

  Hit : 5648     Date : 2012/04/08 08:59



    
ralehgus123 #include<stdio.h>

int nCr(int n,int r)
{
int k;
int ncr;
if( n < r)
printf("Error : n is less than r, End Program");


if(r == 0 || n == r)
printf("n C r = 1\n");
else
{
for( k = 1, ncr = 1 ; k <= r ; k++)
ncr = ncr * ((n - k + 1) / k);


printf("n C r = %d\n",ncr);}
return 0;
}

int main()
{

int n;
int r;


printf("Enter two numbers n and r (but, n >= r) :");
scanf("%d %d",&n,&r);
nCr(n,r);


return 0;
}




함수로 정리해서 코드보기가 편합니다
2012/04/11