#include<stdio.h> #include<algorithm> using namespace std; void cal(int n,int m) { long long ans=1; m=min(m,n-m); int j=m; for(int i=n;m>0;m--,i--) { ans*=i; } for(int i=1;i<=j;i++) { ans/=i; } printf("%I64d ",ans); } int main() { int _case; int n,m; scanf("%d",&_case); while(_case--) { scanf("%d%d",&n,&m); if(m>n)printf("0 "); else cal(n,m); } return 0; }
注意此写法long long也会溢出!!!!!!!!!!!!!!
#include<stdio.h> #include<algorithm> using namespace std; #define eps 1e-8 int main() { int _case; int n,m; scanf("%d",&_case); while(_case--) { scanf("%d%d",&n,&m); if(m>n)printf("0 "); else { double ans=1; m=min(m,n-m); int j=m; for(int i=0; i<m; i++) { ans*=n--; ans/=j--; } //long long x=ans+eps; printf("%.0lf ",ans+eps); } } return 0; }
#include<iostream> #include<cstdio> using namespace std; int main(void) { int m,n,t; _int64 sum; cin>>t; while(t--) { cin>>n>>m; sum=1; for(int i=1;i<=m;i++) { sum*=n--; sum/=i; } printf("%I64d ",sum); } return 0; }