[FZH] 一个C语言题目

David Young dhyang555 at gmail.com
Tue May 17 16:45:21 UTC 2011


在 2011年5月17日 下午7:37,宏羽杜 <dongfengweixiao at gmail.com>写道:

> 这个题目的算法很单纯,但是结果很蛋疼。
>
> 一共出了三个问题:
当然最大的问题是算组合数时的公式写错了,排错时才发现,第二个就是循环应该从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;
}


More information about the Chinese mailing list