http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1061
题意 : 表示这个题的英文没看懂,就看懂了一个warning,看着样例像组合数就算了一下,结果真是。
组合数这种题,一共有好多代码,但基本各种代码放在各种题上就会出现不同的问题,要么是超时问题,或者越界问题,还有的直接WA,超时我倒是好理解,但我不明白的是为什么都是算组合数的还会出现越界和WA这样的错误,难道是数组问题?一直不太肯定,毕竟只有一种方法用了数组,递推去做的,还希望了解的朋友们能为我指点迷津啊】
#include<stdio.h>
#define LL long long
LL c(LL x, LL y)
{
int i, j;
LL sum = ;
if(y > (x/))
y = x - y;
for(i = x, j = ; i > x-y; i--, j++)
{
sum *= i;
sum /= j;
} return sum;
}
int main()
{
LL n,m;
while(~scanf("%lld %lld",&m,&n))
{
if(m == &&n == )
break ;
printf("%lld\n",c(m,n));
}
}
这个代码算适用大多数代码的,若是数据过大,用这个一般就对