/*3、N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。*/
/*这种程序通常可以用递归实现,若考虑到实现效率,这里也可以采用非递归来实现*/
/*代码虽然短小,却体现了算法思想 下面有三种解法 1,3是非递归,2是递归*/
/*测试数据: 5 输出结果 一共有8种走法
测试数据: 15 输出结果 一共有987种走法 */
/*程序:*************************爱X的味道 *****************************/
#include<stdio.h>
#include<stdlib.h>
#define N 15
int GoUpstairs(int n)
{
int f1=1,f2=2,tmp,i;
for(i=3;i<=n;i++)
{
tmp=f1+f2;
f1=f2;
f2=tmp;
}
return tmp;
}
int main()
{
int sum=0;
sum=GoUpstairs(N);
printf("一共有 %d 种走法!\n\n",sum);
return 0;
}
/*
#include<stdio.h>
#include<stdlib.h>
#define N 5
int GoUpstairs(int n)
{
if( n<0 ) return 0;
if(1== n) return 1;
if(2==n ) return 2;
return GoUpstairs(n-1)+GoUpstairs(n-2);
}
int main()
{
int sum=0;
sum=GoUpstairs(N);
printf("一共有 %d 种走法!\n\n&
08华中科大机试第三题(N阶上楼梯问题)
最新推荐文章于 2022-03-15 21:25:18 发布
该博客讨论了N阶楼梯上楼问题的三种解法,包括递归和非递归实现。通过示例代码展示了如何计算不同阶数楼梯的上楼方式数量,如5阶楼梯有8种方式,15阶楼梯有987种方式。
摘要由CSDN通过智能技术生成