首页 > 代码库 > Climbing Stairs
Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
完全是靠列举结果,推出迭代公式,发现就是斐波那契数列的形式,即当n>=3时,f(n)=f(n-1)+f(n-2)。
C++代码实现:
#include<iostream>using namespace std;class Solution {public: int climbStairs(int n) { if(n==0) return 0; if(n==1) return 1; if(n==2) return 2; int n1=1; int n2=2; int sum=0; while(n>2) { sum=n1+n2; n1=n2; n2=sum; n--; } return sum; }};int main(){ int n=5; Solution s; cout<<s.climbStairs(n)<<endl;}
运行结果:
Climbing Stairs
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。