希望大家有更好的方案可以交流一下,在下还是弱弱一枚,有不足之处请指教
/*下面是组合数*/
long long int text(int a,int b)
{
if(b<a-b)//选择更加靠近a的数字,可以使乘积较小,避免超出范围
{
b=a-b;
}
long long ans=1;
for(int i=a;i>=b+1;i--)
{
ans*=i;
}
for(int i=1;i<=a-b;i++)
{
ans/=i;
}
return ans;
}
/*下面是排列数*/
long long text(long long a,long long b)
{
long long ans=1;
for(long long i=a-b+1;i<=a;i++)
{
ans*=i;
}
return ans;
}