斐波那契数列

来源:互联网 发布:淘宝账号下线 编辑:程序博客网 时间:2024/05/29 11:44

问题描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39
这里写图片描述
解题方法:
1.非递归,利用迭代
算法实现如下:

int Fibonacci(int n){    int a = 1;    int b = 1;    int c = 0;    if (1 == n || 2 == n)        return 1;    if (n >= 3)    {        for (int i = 3; i<=n; i++)        {            c = a + b;            b = a;            a = c;        }        return c;    }    return 0;}

算法2:递归1

int Fibonacci(int n){    if (n == 0)        return 0;    if (n == 1)        return 1;    return Fibonacci(n - 1) + Fibonacci(n - 2);}

算法3:递归2

int Fibonacci(int n) {    return n <= 0 ? 0 : n <= 2 ? 1 : Fibonacci(n - 1) + Fibonacci(n - 2);}

代码其实都很好写,不过思想自己好好理解!
下面给出全部代码和测试结果:

#include<iostream>using namespace std;int Fibonacci1(int n){    int a = 1;    int b = 1;    int c = 0;    if (1 == n || 2 == n)        return 1;    if (n >= 3)    {        for (int i = 3; i<=n; i++)        {            c = a + b;            b = a;            a = c;        }        return c;    }    return 0;}int Fibonacci2(int n) {    return n <= 0 ? 0 : n <= 2 ? 1 : Fibonacci2(n - 1) + Fibonacci2(n - 2);}int Fibonacci3(int n){    if (n == 0)        return 0;    if (n == 1)        return 1;    return Fibonacci3(n - 1) + Fibonacci3(n - 2);}int main(){    cout << Fibonacci1(3) << endl;    cout << Fibonacci2(3) << endl;    cout << Fibonacci3(3) << endl;    system("pause");    return 0;}

测试结果如下:
这里写图片描述

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 左家庄历史 左家庄药店 左家庄12号院邮编 左睾丸小右睾丸大 左乳房大右乳房小 小左小右 左胸大右胸小是什么原因 女子左胸比右胸小很多怎么办 左燕翎 左小蕾 山海传人左十三 安山左 望都县左凤山张丽娟 左山爱 左山爱在线播放 左山爱在线全部播放 以岭盐酸左氧氟沙星片 左岸潇个人资料 左庶长 左延安 左归丸功效与作用 左归丸功效 左归丸方歌 左归丸说明书 左归丸价格 左归丸组成 左归丸哪里买 左归丸价格多少钱 左归丸的价格 左归丸多少钱一盒 左归丸市场价 左归丸的作用 左归丸歌诀 左归丸的功效 左归丸的成分 左归丸左归丸 左归丸 价格 左归丸方解 左归丸一盒多少钱 左归丸哪个牌子好 左归丸知柏地黄丸