2023王道作业week4_day12————走楼梯
1.题目:
假如有n个台阶,一次只能上1个台阶或2个台阶,请问走到第n个台阶有几种走法?为便于读者理解题意,这里举例说明如下:假如有3个台阶,那么总计就有3种走法:第一种为每次上1个台阶,上3次;第二种为先上2个台阶,再上1个台阶;第三种为先上1个台阶,再上2个台阶。输入为n,输出为走到第n个台阶有几种走法
2.思路
设台阶为n个
当n=1时,走法为1
当n=2时,走法为2,1+1或2
当为n个时,相当于在n-1这个台阶走一步或者在n-2这个台阶走两两步
所以n个台阶相当于n-1个台阶的走法加上n-2个台阶的走法
递归函数 :
ways(n) = ways(n-1) + ways(n-2);
递归出口:
n=1 return 1;
n=2 return 2;
### 代码实现
//假如有n个台阶,一次只能上1个台阶或2个台阶,请问走到第n个台阶有几种走法?
//为便于读者理解题意,这里举例说明如下:假如有3个台阶,那么总计就有3种走法:第一种为每次上1个台阶,上3次;第二种为先上2个台阶,再上1个台阶;第三种为先上1个台阶,再上2个台阶。输入为n,输出为走到第n个台阶有几种走法
include<stdio.h>
int ways(int n)
{
if (n == 1)
{
return 1;
}
if (n == 2)
{
return 2;
}
return ways(n - 1) + ways(n - 2);
}
int main()
{
int n;
scanf("%d", &n);
int result = ways(n);
printf("%d\n", result);
return 0;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。