求组合数(数学)
只是简单的求组合数 代码也很简单
分子分母约分:(对于数据要求不是很多)
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 }
数组模拟:(输入数据很大时不使用 会导致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 }