在 2011年5月17日 下午7:37,宏羽杜 <dongfengweixiao(a)gmail.xn--com>:-0s6m5392c
这个题目的算法很单纯,但是结果很蛋疼。
一共出了三个问题:
当然最大的问题是算组合数时的公式写错了,排错时才发现,第二个就是循环应该从0开始,第三个问题是,==错写成=.
Version 2.0版如下:
#include <stdio.h>
int fab(int number)
{
if(number>0)
return fab(number-1)*number;
else if(number==0)
return 1;
return -1;
}
int comb(int number,int count)
{
int a,b,c;
a=fab(number);
b=fab(count);
c=fab(number-count);
if((a<0)||(b<0)||(c<0))
return 0;
else
return a/b/c;
}
int main()
{
int sum=0,count,number;
scanf("%d",&number);
number--;
for(count=0;count<=number;++count)
{
sum+=comb(number,count);
}
printf("the result is:%-d\n",sum);
return 0;
}