3 條題解
-
0
#include<stdio.h> long long fun(long long n, long long m) { if (m > n - m) { m = n - m; //用于缩减循环次数,否则可能溢出或超时 //原理见高中数学排列组合 } long long result = 1; for (int i = 1; i <= m; i++) { result = result * (n - i + 1) / i; //排列组合的化简公式,不然容易中途溢出 } return result; } int main() { int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d%d",&n,&m); printf("%lld\n",fun(n,m)); } return 0; }
資訊
- ID
- 210
- 時間
- 1000ms
- 記憶體
- 128MiB
- 難度
- 8
- 标签
- (無)
- 遞交數
- 1630
- 已通過
- 213
- 上傳者