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;

}