浙江工商大学20机试(oj复试)童年生活二三事
童年生活二三事
题目描述
Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。
输入格式
输入包括多组数据。 每组数据包括一行:N(1≤N≤40)。 输入以0结束。
输出格式
对应每个输入包括一个输出。 为redraiment到达第n阶不同走法的数量。
样例输入
1
2
0
样例输出
1
2
思路:
本质上是斐波那契数列,这题有个更好的写法,更加节省空间。
#include
using namespace std;
int a[100];
main(){int n;while(cin>>n){if(n==0) break;a[1]=1;a[2]=2;for(int i=3;i<=n;i++){a[i]=a[i-1]+a[i-2];}cout<<a[n]<<endl;}
}
//更好的写法
#include
using namespace std;
main(){int n;int a,b,sum; while(cin>>n){if(n==0) break;if(n==1) {cout<<1<<endl;}else{a=1;b=2;for(int i=3;i<=n;i++){sum=a+b;a=b;b=sum;}cout<<b<<endl; } }
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
