分析:首先保证至少有4男1女,然后每次都要出t个人,所以那t-5人就要从剩下的人中挑选,挑选的过程中用到了乘法原理和阶乘,但要记住控制变量;
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll a[10000];
ll cul(ll x,ll y)
{
if(y>x/2)
y=x-y;//可以使cnt小一点,防止超范围
ll cnt1=1,cnt2=1;
for(int i=x;i>=x-y+1;i--)
cnt1*=i;
for(int i=1;i<=y;i++)
cnt2*=i;
return cnt1/cnt2;
}
int main()
{
ll x,y,sum=0,k=0,n,m,t;
scanf("%lld %lld %lld",&n,&m,&t);
for(int i=4;i<=min(n,t-1);i++)//控制男生人数 t-1大于n的话 肯定到n就结束 n大于t-1的话也选不上
{
if(t-i<1||t-i>m)//如果可选的人数不足为1 或者超过女生可选范围
continue;
sum+=cul(n,i)*cul(m,t-i);//男生的可能 女生的可能
}
while(sum>0)
{
a[++k]=sum%10;
sum/=10;
}
for(int i=k;i>=1;i--)
printf("%lld",a[i]);
printf("\n");
}