C语言解决排列组合问题

img

img

我的想法是用排列组合来做,用走2步的次数来作为分类的标准,比如2步走了五次,那么就是在十步中选择五步,然后按照排列组合的规律计算阶乘,再将阶乘相除,最后把所有情况加起来,得到答案,但是结果与想法不符合,不知道哪里出了问题


#include

int main()

{

unsigned long count(int n);

int n;

unsigned long m;

printf("请输入楼梯的阶数:");

scanf("%d",&n);

m=count(n);

printf("有%lu种爬楼梯的方法\n",m);

return 0;

}

unsigned long count (int n)

{

unsigned long f;

if(n==1)

f=1;

else if(n==2)

f=2;

else

f=count(n-1)+count(n-2);

return(f);

}


感谢分享。。。

不知道对您有帮助否: