求组合数(数学)

只是简单的求组合数 代码也很简单

 

分子分母约分:(对于数据要求不是很多)

 1 int c(int x, int y) 
 2 {
 3     int i, j, sum = 1;
 4     if(y > (x/2))
 5         y = x - y;
 6     for(i = x, j = 1; i > x-y; i--, j++)
 7     {
 8         sum *= i;
 9         sum /= j;
10     }
11 
12     return sum;
13 }
View Code

 

数组模拟:(输入数据很大时不使用 会导致RE)

 1 void cc()
 2 {
 3     for(int i = 1; i <= N; i++)
 4     {
 5         for(int j = 0; j <= N; j++)
 6         {
 7             if(j == 0 || i == j)
 8                 c[i][j] = 1;
 9             else if(j == 1)
10                 c[i][j] = i;
11             else
12                 c[i][j] = c[i-1][j-1]+c[i-1][j];
13         }
14     }
15 }
View Code

 

posted @ 2013-08-20 10:07  GLSilence  阅读(224)  评论(0编辑  收藏  举报