题解 | #N阶楼梯上楼问题#

略微思考可以发现,想要抵达目标台阶n;仅有两种方法,
1.从n-1阶进一步;
2.从n-2阶进两步。(为什么n-2阶不可以进两个一步,因为n-2阶处进一步就抵达了n-1阶(此为第一种情况))
可以得到
{      
        f[1]=1
        f[2]=2
        f[n]=f[n-1]+f[n-2]
}
那么根据动态规划递推求解,直接生成一个数组。
#include<iostream>
using namespace std;

long long answer[91];

void Initial(){
	answer[1]=1;
	answer[2]=2;
	int i=3;
	while(i<=90){
		answer[i]=answer[i-1]+answer[i-2];
		i++;
	}
	return;
}

int main(){
	Initial();
	int num;
	while(cin>>num){
		cout<<answer[num]<<endl;
	}
	return 0;
}


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务