在这里您可以找到我要解决的问题:
对于整数 n 和 k (0<=k<=n<1001) 确定 (二项式系数)。
输入
标准输入的第一行包含一个整数 t (t<1001),它是测试用例的数量。
在接下来的 t 行中的每一行中都有数字 n 和 k。
输出
对于每个测试打印(二项式系数)。
例子:
Input
3
0 0
7 3
1000 2
Output:
1
35
499500
我似乎在我的解决方案中找不到任何问题(除了写得非常糟糕 - 我最近才开始编程):
#include <stdio.h>
int main()
{
unsigned long int t,n,k,binomial=1;
unsigned long int number=1;
for(scanf("%lu",&t);t>0;t--)
{
scanf("%lu%lu",&n,&k);
if(k<(n/2)) k=n-k;
for(binomial=1,number=1;n>k;k++)
{
binomial=binomial*(k+1)/number;
number++;
}
printf("%lu\n",binomial);
}
return 0;
}
它适用于示例输入,但解决方案是通过问题站点判断的
(http://www.spoj.pl/SHORTEN/problems/BINOMIAL/english/)
并且该解决方案不被接受。我也尝试了其他输入,所有输入都返回了正确的输出。我的问题是:这个解决方案无效是否有原因?