我的想法是用排列组合来做,用走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);
}
感谢分享。。。