Fibnaci数列迭代法(非递归)

斐波那契数列的迭代算法和递归算法 斐波那契数列(Fibonacci sequence),又称“黄金分割数列“,因数学家莱昂纳多·斐波那契(Leonardo 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*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此...... 阅读详情

下面对于Fibnaci数列作基本介绍:

这里Fibnaci代表数组名,n代表索引。

如:Fibnaci基数列:1,1,2,3,5,8...

当n<=2时:Fibnaci(n)=1
当n>2时:Fibnaci(n)=Fibnaci(n-1)+Fibnaci(n-2)


我们可以使用递归或者迭代等方法来进行算法编程,这里介绍迭代方法。

其他算法非递归方法也可以参照如下方式。

   public List<int> BaseNumbers = new List<int> { 1, 1, 2, 3, 5, 8 };
        public int GetFibnaceNumber(List<int> baseNumbers, int len)
        {
            if (len <= 2)
            {
                return 1;
            }
            else if ((len - 1) <= BaseNumbers.Count)
            {
                len = len - 1;
                return BaseNumbers[len - 1] + BaseNumbers[len - 2];
            }
            else
            {
                int BaseMaxIndex = BaseNumbers.Count;
                BaseNumbers.Add(BaseNumbers[BaseMaxIndex - 1] + BaseNumbers[BaseMaxIndex - 2]);
                return GetFibnaceNumber(BaseNumbers, len);
            }
        }

更多WEB开发技术请加群:Asp.Net高级群 号码:261882616  博主以及同事和你共同探讨感兴趣的话题。


大数加法 + 斐波那契数列 Problem Description 度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。 Input 这里包括多组测试数据,每组测试数据包含一个正整数N,代表全1序列的长度。 1≤N≤200 Output 对于每组测试数据,输出一个整数,代表由题目中所给定 阅读详情

相关推荐

斐波那契非递归 C语言源码 大数加法

C 语言实现的斐波那契数列fibnacii),非递归方式。斐波拉契数列当输入值大于某个值时,基本的整形变量将无法保存其结果,因此本例使用字符串返回斐波拉契的结果,其中包括用字符串实现的大数加法。

js 求前n项的 fibnaci 数列

1 function f(n) { 2 var num1 = 1, 3 num2 = 1; 4 if (n == 1) 5 document.write(num1);//n=1,输出1 6 else if (n > 1) { 7 ...

dianduojian8843的博客 366

斐波那契递归.cpp

斐波那契递归.cpp

优先队列三大利器——二项堆、斐波那契堆、Pairing 堆

  优先队列三大利器——二项堆、斐波那契堆、Pairing 堆   本文内容框架: 写在前面的话 二项堆 二项堆的定义,操作,实现 斐波那契堆 斐波那契堆的定义,操作,实现 Pairing堆 Pairing 堆的定义,操作,实现 小结 写在前面的话 昨天发现,作者辛苦的劳动被一个无耻的人给窃取了——有一个人(csdn ID :qiaqia609)(...

qiudesuo的专栏 1102

Fibonacci 数列及其计算方法

Fibonacci 数列及其计算方法斐波那契数列(Fibonacci sequence),又称黄金分割数列,这个数列最早是由印度数学家提出来的。不过更多的人学习到这个数列是因为意大利数学家列昂纳多·斐波那契(Leonardoda Fibonacci)和他的《Liber Abaci》一书。在这本书中,列昂纳多·斐波那契以兔子繁殖为例子引出了这个序列,因此这个序列又称为“兔子数列”。 这个序列的前几项

Ivan 的专栏 4万+

计算斐波那契数字 递归和非递归

#include<stdio.h> #include<stdlib.h> int main() { int n = 0; int ret = 0; scanf("%d",&n); ret = fib(n); printf("%d\n", ret); system("pause"); return 0; } int main() { int i = 0...

HuiDiExAg的博客 180

非递归的fib与找出无重复的两个数

#define _CRT_SECURE_NO_WARNINGS 1 #include #include int fib(int n) { int num1 = 0; int num2 = 1; int num3 = n; for (int i = 2; i { num3 = num1 + num2; num1 = num2; num2 = num3; } re

zhangrrrr的博客 392

【C++】斐波那契数列应用的一个实例

【C++】斐波那契数列应用的一个实例。这是关于斐波那契数列的一个例子,用C++语言实现

fib函数(迭代)

/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: fibnacci.cpp * 作 者:王至超 * 完成日期:2013年12月14号 * 版本号: v1.0 * * 输入描述:无 * 问题描述:输出Fibnacci序列的第20个数,Fibnacci序列形如0,1

u012369175的专栏 1790

fib函数用迭代替换递归

fib函数递归实现: long Fib(long n) { if (n <= 1) { return n; } else { var t1 = Fib(n - 1); ...

weixin_30872867的博客 312

浅谈递归算法与迭代算法——从Fibbonacci数列说起

意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci)在著作《算盘书》(Liber Abaci)中提到了一个兔子繁殖问题,其题意大致如下:一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们拿一对刚出生的小兔来分析:第一个月初小兔子没有繁殖能力,所以是一对;第二个月初始小兔依然没有繁殖能力,还是一...

Demigod1235的博客 1416

斐波那契数的两种求法(迭代,递归)

**斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1.’ 了解到它的规律后,我们很简单的能想到两种做法: 1.递归 2.迭代 对于一个我们已经了解其规律的函数,我们用递归可以很简单的求出它...

凌桓丶的博客 5308

斐波那契数列

题目:                             f(n) =  0     n=0                                         1     n=1                                        f(n-1) + f(n-2)   n > 1 思路一: 递归(效率低) 代码:  int Fibnaci

star714的博客 388

FIBONACI数列

#include using namespace std; int fibonaci(int n); int main() { int n,t,i=1; cin>>n; while(i { t=fibonaci(i); i++; cout } }  int fibnaci(int n) { if (n==1) return 1; else if(n==2) r

yangzhengjieji的专栏 544

迭代法求斐波那契数列

个人博客网站:https://www.liuzhi.org.cn/ #include <stdio.h> #include <stdlib.h> int Fib(int n) { if(n<1) { return -1; } if(n==1||n==2) { return ...

LIUZHIOJ的博客 5656

斐波那契数列的递归,迭代(循环),通项公式三种实现

谓Fibonacci数列是指这样一种数列,它的前两项均为1,从第三项开始各项均为前两项之和。用数学公式表示出来就是: 1 (n=1,2) fib(n)= fib(n-1)+fib(n-2) (n>2) 可以证明斐波那契数列的通项公式为fib(n) = [(1+√5)/2]^n /...

weixin_33709609的博客 1046

c语言 之求 Fibionacci 数列的前n个数

Fibionacci数列有如下特点:前两个数都为1,从第三个数开始,该数是前两个数之和。 即: F1=1;(n=1) F2=1;(n=2) Fn=Fn-1+Fn-2;(n>2) 下面给出几种求法: 解法一: #include int fib(int n) { int fib1 =1; int fib2 =1; int fib = 1; int i = 0; while (

her的博客 2111
上一篇: 服务器端世界时间(UTC)转换客户端时区时间
下一篇: 自定义数据类型,操作符重载实例[C#]
chamychen
博客等级 码龄17年 22粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值