Problem2216--递归-爬楼梯

2216: 递归-爬楼梯

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Submit

Description

假设你正在爬楼梯,需要 n 阶你才能到达楼顶;每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。
例如 n = 5 时,共有 8 种不同的爬法。

Input

输入一行,一个正整数 n(1 <= n <= 30),表示楼梯的阶数。

Output

输出一行,一个整数,表示爬到楼顶的不同方法数。

Sample Input Copy

5

Sample Output Copy

8

HINT

【问题分析】
当我们第一步只爬一个台阶,剩下的 n-1 个台阶有它的爬法数;当我们第一步爬两个台阶,剩下的 n-2 个台阶就有它的爬法数。
那么可以得到:n 阶台阶的爬法 = (n-1) 阶台阶的爬法数 + (n-2) 阶台阶的爬法数。
递归出口:如果台阶数小于等于 2 阶,则直接返回台阶数。