买水果
时间限制:1000 ms | 内存限制:65535 KB
难度:0
- 描述
-
今天zz突然想吃水果了,然后他到超市去买水果,现超市有n个不同的水果,zz要买m个水果(m<=n);那么zz有多少种买水果的方式??
- 输入
- 输入T组数据(T<=100)
然后输入T行,每行输入两个数n,m(0< n < 2^31);
- 输出
- 每一行输出一个数(保证在0~2^31);
- 样例输入
-
2 4 2 3 3
- 样例输出
-
6 1
-
上传者
思路:之前比赛的时候写的超时是,一次在网上看过组合数,我不知道为什么是这样的,背着吧。。。for循环那个大括号包含while,在外面。昨天提交因为不是这就错了。要用long long ,int 有符号是2的31次方减1,不只是无符号的能不能编译成功,好像__int64不能编译成功在南阳理工oj上
#include<iostream> #include<stdio.h> using namespace std; long long zuheshu(long long n, long long r) { long long i; long long s=1; long long j=1; if(n-r<r) r=n-r; for(i=0;i<r;i++) { s*=(n-i); while(j<=r &&s%j==0</span>) { s=s/j; j++; } } return s; } int main() { int T; long long n,r; cin>>T; while(T--) { scanf("%lld%lld",&n,&r); printf("%lld\n",zuheshu(n,r)); } return 0; }
时间: 2024-10-10 00:19:56