文章
34
粉丝
179
获赞
13
访问
199.0k
属于简单类动态规划,可以采用递归的方法。
爬到n阶可由n-1阶和n-2阶爬上来。以此类推,f(n)=f(n-1)+f(n-2) f(n)代表爬到n阶总的方法数。f(1)=1,f(2)=2
用long long 以防超出int范围
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
long long a[100];
int main(){
int n;
while(cin>>n){
a[1]=1; //爬到1楼有一种方法
a[2]=2; //爬到2楼有两种方法
if(n==0) break;
for(int i=3;i<=n;i++){
a[i]=a[i-1]+a[i-2];
}
cout<<a[n]<<endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发