您的位置:首页 > 编程语言 > C语言/C++

C++实现爬楼梯问题

2017-04-12 18:50 225 查看
大三下了,找不到实习,很忧桑

爬楼梯喽!!

问题描述:

爬楼梯问题,每次可以走1步或者2步,爬上n层楼梯的总方法。

找规律吧~

1个台阶:1步——1种方法

2个台阶:2步,1步+1步——2种方法

3个台阶:1+1+1,1+2,2+1——3种方法

4个台阶:1+1+1+1,1+1+2,1+2+1,2+2,2+1+1——5种方法

…………

找到规律,其实就是斐波拉契数列

×××———————————————————————————————————————————————————————————————————————————

斐波那契数列(Fibonacci
sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda
Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,
F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)————来自百度百科

×××———————————————————————————————————————————————————————————————————————————

介于关系F(n)=F(n-1)+F(n-2),我们来用递归吧~⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

c++代码:

#include <iostream>

using namespace std;

int ff(int n)//递归函数在此

{

if(n==1||n==0)//F(0)=1,F(1)=1,因为这样ff(2)才会返回2呢,规律规律~

return 1;

else

return ff(n-2)+ff(n-1);//递归了

}

void main()

{

int n;

cin>>n;  //输入几个台阶呢

cout<<ff(n)<<endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: