假设有n个台阶,一次只能上1个台阶或2个台阶,请问走到第n个台阶有几种走法?
为方便读者理解题意,这里举例说明如下 ,假如有3个台阶,那么总计就有三种走法:第一种为每次上1个台阶,上3次;第二种为先上2个台阶,再上1个台阶;第三种为先上1个台阶,再上2个台阶。
解题思路:
要到达n个台阶,只能从第n-1个台阶处走1个台阶,或从第n-2个台阶处走2个台阶。
#include <stdio.h>/** 达到n阶台阶的走法*/
int step(int n) {// 当台阶数为1或2时 台阶数和走法刚好一样 返回n即可if (1 == n || 2 == n) {return n;}return step(n - 1) + step(n -2);
}int main() {// 台阶数int n;// 从控制台输入台阶数scanf("%d", &n);printf("There is %d way to arrive %d steps ", step(n), n);return 0;
}