程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 問題一百三十一:組合數

問題一百三十一:組合數

編輯:關於C語言

Description


求C(N, M),即求M個數中選N個數的組合方案數。


Input


第一行一個正整數T (T<=10), 表示有T組測試數據。第二行~第T+1行,每行有2個正整數N,M (1<=N, M<=20)。


Output


對於每組輸入N,M,輸出一行,該行有一個數,為C(N, M)值。


Sample Input

 


2
3 5
1 20


Sample Output

 


10

20


[plain]  #include <stdio.h> 
 
__int64 fac(int a); 
 
int main() 
{    
      int num; 
      int n; 
      int m; 
      scanf("%d", &num); 
 
      while(num--) 
      { 
          scanf("%d %d", &n, &m); 
 
          printf("%d", fac(m)/fac(n)/fac(m-n)); 
           
          if(num>0) 
          { 
             printf("\n"); 
          } 
      } 
 
      return 0; 

 
__int64 fac(int a) 

     int i; 
     __int64 sum; 
 
     sum=1; 
     if(a==0) 
     { 
        sum=1; 
     } 
     else 
     { 
        for(i=1; i<=a; i++) 
        { 
           sum*=i; 
        } 
     } 
 
     return sum; 

#include <stdio.h>

__int64 fac(int a);

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

   while(num--)
   {
       scanf("%d %d", &n, &m);

    printf("%d", fac(m)/fac(n)/fac(m-n));
   
    if(num>0)
    {
       printf("\n");
    }
   }

      return 0;
}

__int64 fac(int a)
{
  int i;
  __int64 sum;

  sum=1;
     if(a==0)
  {
     sum=1;
  }
  else
  {
     for(i=1; i<=a; i++)
  {
     sum*=i;
  }
  }

  return sum;
}

 \
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved