题目1388:跳台阶

来源:互联网 发布:图片数据库 编辑:程序博客网 时间:2024/06/05 11:13
题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

输入:

输入可能包含多个测试样例,对于每个测试案例,

输入包括一个整数n(1<=n<=70)。

输出:

对应每个测试案例,

输出该青蛙跳上一个n级的台阶总共有多少种跳法。

分析:

第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此n级台阶时的不同跳法的总数f(n)=f(n-1)+(f-2)。

递推关系:

f(1) = 1;

f(2) = 2;

f(n) = f(n - 1) + f(n - 2);

 

代码:

#include<stdio.h>#include<stdlib.h>int main(){int n;long long int a[71];a[1] = 1;a[2] = 2;for(int i = 3; i < 71; i++)a[i] = a[i - 1] + a[i - 2];while(scanf("%d",&n) != EOF){printf("%lld\n",a[n]);}}


 

0 0
原创粉丝点击