C#使用迭代法实现Fibnaci数列
本文实例讲述了C#使用迭代法实现Fibnaci数列的方法。分享给大家供大家参考。具体分析如下:
下面对于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); } }
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
C#特性-迭代器(上)及一些研究过程中的副产品
提到迭代器我们不能不想到迭代器模式,那我就以迭代器模式作为开场白. 在我们的应用程序中常常有这样一些数据结构: 它们是一个数据的集合,如果你知道它们内部的实现结构就可以去访问它们,它们各自的内部存储结构互不相同,各种集合有各自的应用场合.说到这里大家可能想出一大堆这样的集合了:List,Hashtable,ArrayList等等.这些集合各自都有各自的个性,这就是它们存在的理由.但如果你想遍历它你必须知道它内部的存储细节,作为一个集合元素,把内部细节暴露出来肯定就不好了,这样客户程序就不够稳定了
-
C#特性 迭代器(下) yield以及流的延迟计算
从0遍历到20(不包括20),输出遍历到的每个元素,并将大于2的所有数字放到一个IEnumerable<int>中返回 解答1:(我以前经常这样做) static IEnumerable<int> WithNoYield() { IList<int> list = new List<int>(); for (int i = 0; i < 20; i++) { Console.WriteLine(i.ToString()); if(i > 2) l
-
C#生成不重复随机数列表实例
复制代码 代码如下: /// <summary> /// 生成不重复随机数列表实例 /// </summary> /// <param name="count">不重复数数量</param> /// <returns>不重复数列表</returns> private static List<int> GetRandomList(int
-
c#斐波那契数列(Fibonacci)(递归,非递归)实现代码
//Main 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Fibonacci{ class Program { static void Main(string[] args) { Console.WriteLine("Would you like to know which
-
C#迭代器模式(Iterator Pattern)实例教程
本文以实例形式简单简述了C#迭代器模式的实现方法,分享给大家供大家参考.具体方法如下: 一般来说,迭代器模式的需求来自:需要对一些集合进行迭代,而迭代的方式可能有很多种. 说到迭代,动作大致包括设置第一个位置,获取下一个位置元素,判断是否迭代结束,获取当前位置元素,大致就这么些.把这些迭代动作封装到一个接口中. public interface IIterator { void First(); string Next(); bool IsDone(); string Current(); }
-
C#使用迭代法实现Fibnaci数列
本文实例讲述了C#使用迭代法实现Fibnaci数列的方法.分享给大家供大家参考.具体分析如下: 下面对于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<
-
Python实现求数列和的方法示例
本文实例讲述了Python实现求数列和的方法.分享给大家供大家参考,具体如下: 问题: 输入 输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述. 输出 对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数. 样例输入 81 4 2 2 样例输出 94.73 3.41 实现代码: import math while 1: x = raw_input() x = list(x.split(" "))
-
C#实现斐波那契数列的几种方法整理
什么是斐波那契数列?经典数学问题之一:斐波那契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--想必看到这个数列大家很容易的就推算出来后面好几项的值,那么到底有什么规律,简单说,就是前两项的和是第三项的值,用递归算法计第50位多少. 这个数列从第3项开始,每一项都等于前两项之和. 斐波那契数列:{1,1,2,3,5,8,13,21...} 递归算法,耗时最长的算法,效率很低. public static long CalcA(int n) { if (n <=
-
生成0-99之间的随机数列
复制代码 代码如下: :: 生成0-99之间的随机数列 R1 :: :: :: @echo off setlocal EnableDelayedExpansion :: 初始化顺序数列 for /l %%i in (0,1,99) do ( set rnum%%i=%%i ) :: 对数列进行随机交换 for /l %%i in (0,1,99) do ( set /a rnd=!random! %% 100 call set tmp=%%rnum!rnd!%% set rnum!rnd!=!r
-
java编程经典案例之基于斐波那契数列解决兔子问题实例
本文实例讲述了java基于斐波那契数列解决兔子问题.分享给大家供大家参考,具体如下: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? package com.java.recursion; /** * @描述 三种方法实现斐波那契数列 * @项目名称 Java_DataStruct * @包名 com.java.recursion * @类名 Fibonacci * @author chenli
-
Java求一个分数数列的前20项之和的实现代码
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和. 程序分析:请抓住分子与分母的变化规律. 程序设计: public class test20 { public static void main(String[] args) { float fm = 1f; float fz = 1f; float temp; float sum = 0f; for (int i=0;i<20;i++){ temp = fm; fm = fz; fz =
-
Python打印斐波拉契数列实例
本文实例讲述了Python打印斐波拉契数列的方法.分享给大家供大家参考.具体实现方法如下: #打印斐波拉契数列 #!/usr/bin/python def feibolaqi(n): if n == 0 or n == 1: return n else: return feibolaqi(n-1) + feibolaqi(n-2) num = int(raw_input('please input a int:')) if num >= 0: print 'feibolaqi(%d) is %d
-
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
本文实例讲述了javascript基于牛顿迭代法实现求浮点数的平方根.分享给大家供大家参考,具体如下: 今天在网上看到一则利用牛顿迭代法求浮点数的平方根的方法,发现很好,比一些语言自带的sqrt方法运行要快,在这里备份一下,以待后用,这里稍微做了些改动. 首先是牛顿迭代法原理: 比如我们要求a的平方根,首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代几次后x的值就已经相当精确了. 如我们要求的数学假设为 a=7, var x=a; ( 7 + 7/7 ) / 2 = 3.642
-
php实现斐波那契数列的简单写法
斐波那契数列是非常常见的一类数列,其数学定义为:F0=1,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*).本文就用php来简单实现斐波那契数列,代码十分简洁易懂,如下所示: <?php $arr[1] = 1; for($i = 2;$i < 100;$i++) { $arr[$i] = $arr[$i-1] + $arr[$i-2]; } echo join(",",$arr);//将数组合并为一个字符串输出 ?> 至此就实现了Fn=F(n-
-
python实现斐波那契数列的方法示例
介绍 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下递归的方法定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) . 1. 元组实现 fibs = [0, 1] for i in range(8): fibs.append(fibs[-2] + fibs[-1]) 这能得到一个在指定范围内的斐波那契数列的列表. 2. 迭代器实现 class Fibs: def __init__
随机推荐
- 解决jsp页面使用网络路径访问图片的乱码问题
- 防止xss和sql注入:JS特殊字符过滤正则
- Mybatis foreach标签使用不当导致异常的原因浅析
- 鼠标滚轮改变图片大小的示例代码
- C语言中的sizeof操作符用法及和strlen的区别
- Ruby常用文件操作方法
- mongodb在windows下的安装步骤分享
- jquery地址栏链接与a标签链接匹配之特效代码总结
- js获取时间函数及扩展函数的方法
- javascript关于继承解析
- javascript中for/in循环及使用技巧
- JavaScript 空位补零实现代码
- AS编程基础
- 修改注册表使电脑更安全
- 详解Spring Boot 配置多个RabbitMQ
- SpringBoot拦截器的使用小结
- Bootstrap面板(Panels)的简单实现代码
- linux服务中开启防火墙的两种方式
- Vue常用指令详解分析
- ubuntu定时执行python脚本实例代码