HDU OJ 2041 超级楼梯

来源:互联网 发布:yy制作头像软件 编辑:程序博客网 时间:2024/06/14 07:34

超级楼梯

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 61658    Accepted Submission(s): 31631


Problem Description
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
 

Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
 

Output
对于每个测试实例,请输出不同走法的数量
 

Sample Input
223
 

Sample Output
12
 

Author
lcy
 

Source
2005实验班短学期考试
 

Recommend

lcy   |   We have carefully selected several similar problems for you:  2044 2045 2046 2050 2042 




思路 :

建议 把前几层数比较小的情况输出 然后就会发现规律。

实际上 是一个斐波那契数列的一种模拟


Code:


/*  超级楼梯 */#include <iostream>using namespace std;typedef long long ll;ll f(ll n) {if (n==1) return 0;if (n==2) return 1;if (n==3) return 2;return f(n-1)+f(n-2);}//  调用递归超时!!!!!!!!!int main(){/* int n;   ll m;   cin>>n;   for (int i=1;i<=n;i++) {cin>>m;cout<<f(m)<<endl;   }    */    // 一开始调用递归超时了 。int arr[41]={0,1,2};for (int i=3;i<41;i++) {arr[i]=arr[i-1]+arr[i-2];}int n,m;cin>>n;while (n--) {cin>>m;cout<<arr[m-1]<<endl;}return 0;}

提交代码

原创粉丝点击