标签:
ECJTU 2008 Autumn Contest
题目大意:给你两个数N和M,求组合数C(N,M)。
思路:求组合数很容易超范围,此题应该用__int64来做,并且循环的时候,在乘的同时开始除。
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; int zh(int N,int M) { if(M > N) return 0; __int64 ans = 1; for(int i = N,j = 1; i >= N-M+1; --i,++j) { ans *= i; ans /= j; } return ans; } int main() { int N,M,T; cin >> T; while(T--) { cin >> N >> M; cout << zh(N,M) << endl; } return 0; }
标签:
原文地址:http://blog.csdn.net/lianai911/article/details/43369859