模板題。ide
數據範圍較大時:spa
1 double cal(double x, double y) 2 { 3 double i, j, sum = 1; 4 if(y > (x/2)) 5 y = x - y; 6 7 for(i = x, j = 1; i > x-y; i--, j++) 8 { 9 sum *= i; 10 sum /= j; 11 } 12 13 return sum; 14 }
數據範圍較小時,能夠用 C(n,m) = C(n-1.m-1) + C(n,m-1); 從 m 中 選 ncode
1 void init()//c(n,m) = c(n-1,m-1) + c(n,m-1); 從m中選n 2 { 3 int i,j; 4 cn[0][0] = 0; 5 for(i = 1;i <= 32; ++i) 6 { 7 for(j = 0;j <= i; j++) 8 { 9 if(j == 1) 10 cn[j][i] = i; 11 else if(j == 0 || i == j) 12 cn[j][i] = 1; 13 else 14 cn[j][i] = cn[j-1][i-1] + cn[j][i-1]; 15 } 16 } 17 }
這道題的AC代碼blog
1 Paths on a Grid