1003-斐波拉契数列

摘要:
数学上,斐波那契数列是递归定义的:F0=0F1=1Fn=Fn-1+Fn-2换句话说,斐波纳契数列从0和1开始,然后斐波那奇数由前两个数相加。在西方,比萨的莱昂纳多是第一个研究这个序列的人。他用这个序列来描述兔子的数量。现在请在短时间内计算斐波那契级数的第n个值,0≤ n≤ 40.输入斐波那契数列项目的编号n,0≤ n≤ 40

描述

在数学上,斐波那契数列(Fibonacci Sequence),是以递归的方法来定义:

F0 = 0

F1 = 1

Fn = Fn - 1 + Fn - 2

用文字来说,就是斐波那契数列由01开始,之后的斐波那契数就由之前的两数相加。首几个斐波那契数是:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,………………

特别指出:0不是第一项,而是第零项。

在西方,最先研究这个数列的人是比萨的列奥纳多(又名斐波那契),他描述兔子生长的数目时用上了这数列。

n 第一个月有一对刚诞生的兔子

n 第两个月之后它们可以生育

n 每月每对可生育的兔子会诞生下一对新兔子

n 兔子永不死去

假设在n月有新生及可生育的兔子总共a对,n+1月就总共有b对。在n+2月必定总共有a+b对:因为在n+2月的时候,所有在n月就已存在的a对兔子皆已可以生育并诞下a对后代;同时在前一月(n+1)b对兔子中,在当月属于新诞生的兔子尚不能生育。

现请以较短的时间,求出斐波那契数列第n项数值,0n40

输入

斐波那契数列项数n0n40

输出

斐波那契数列第n项数值

样例输入

4

样例输出

3

#include <iostream>
using namespace std;
int main()
{
    int a=0;
    int b=1;
    
    int n;
    int sum=0;
    cin>>n;
    if (n==0||n==1) 
    {
        cout<<n<<endl;
    }

    else
    {
         for(int i=1;i<=n;i++)     
         {     
             a=b;     
             b=sum;     
             sum=a+b;     
                  
         }
    
    cout<<sum<<endl;
    }
    return 0;
} 

免责声明:文章转载自《1003-斐波拉契数列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇极致 Web 性能 —— SPA 性能指南wordpress数据库优化wp_posts表 OPTIMIZE下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

斐波那契数列(动态规划)

#include "stdafx.h" #include <iostream> using namespace std; #define MAXSIZE 100 int bofei_bottom(int n) { int f[MAXSIZE]; f[0] = 0; f[1] = 1; for (int i = 2; i <= n;...

Lua习题练习(9*9乘法表,输出所指定的图像,斐波那契数列)

1. (循环语句的嵌套使用)有 1,2,3,4四个数字,能组成多少个互不相同且无重复数字的 三位数,并输出在屏幕上面2. 计算斐波那携数列的前20个数字,并输出在屏幕上面 。指的是这样一个数列(1,1,2,3,5,8,13...21,....)要用到递归函数3. 输出一个* 的三角形4. 9*9乘法表(不同结构的输出) --有 1,2,3,4四个数字,能组...

斐波那契数列记录项

前言:f[n]=f[n-1】+f[n-2];f[0]=0,f[1]=1;        这是斐波那契数列公式。如果要求F[N],要计算N次;       更一般的知道其只与n有关的公式:    Fn=5√5((1+5√2)n−(1−5√2)n) Fn=5√5((1+5√2)n−(1−5√2)n) Fn=5√5((1+5√2)n−(1−5√2)n)   ...

Python递归 — — 二分查找、斐波那契数列、三级菜单

一、二分查找 二分查找也称之为折半查找,二分查找要求线性表(存储结构)必须采用顺序存储结构,而且表中元素顺序排列。 二分查找: 1.首先,将表中间位置的元素与被查找元素比较,如果两者相等,查找结束,否则利用中间位置将表分成前、后两个子表。 2.如果中间位置元素<被查找元素,则开始位置 = 中间位置,结束位置 = 表的长度-1 3.如果中间位置元素&g...