题目描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。
示例1
输入
2
输出
2
示例2
输入
10
输出
89
答题思路:
n=1时,乐乐腿再长,也只有一个走法,就直接一步走完;
n=2时,乐乐有两种走法,①一次走一个台阶,两次结束②一次走两个台阶,一次结束;
n>2时,①第一次一个台阶,剩下n-1个台阶②第一次走两个台阶,剩下n-2个台阶;
详解如下所示,即为:
易得该模型类似于斐波那契数列,可以用递归方法
大体思路已有,下面直接上代码:
#include <stdio.h> int fib(int n) { if(n<=2) return n; else return fib(n-1)+fib(n-2); } int main() { int n = 0; scanf("%d", &n); printf("%d\n", fib(n)); return 0; }