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#特性 迭代器(下) 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#特性-迭代器(上)及一些研究过程中的副产品
提到迭代器我们不能不想到迭代器模式,那我就以迭代器模式作为开场白. 在我们的应用程序中常常有这样一些数据结构: 它们是一个数据的集合,如果你知道它们内部的实现结构就可以去访问它们,它们各自的内部存储结构互不相同,各种集合有各自的应用场合.说到这里大家可能想出一大堆这样的集合了:List,Hashtable,ArrayList等等.这些集合各自都有各自的个性,这就是它们存在的理由.但如果你想遍历它你必须知道它内部的存储细节,作为一个集合元素,把内部细节暴露出来肯定就不好了,这样客户程序就不够稳定了
-
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__
随机推荐
- Mybatis中 XML配置详解
- JavaScript 设计模式学习 Factory
- 关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
- javascript 用记忆函数快速计算递归函数
- jQuery中siblings()方法用法实例
- 浅析Ruby中的DATA对象
- Linux中获取某个进程的系统调用以及参数(故障排查案例)
- 关于重新组织和重新生成索引sp_RefreshIndex的介绍
- js获取url参数的使用扩展实例
- 用jQuery的AJax实现异步访问、异步加载
- Javascript中arguments对象详解
- 微信小程序 template模板详解及实例代码
- Android ScrollView只能添加一个子控件问题解决方法
- C#实现字符串转换成字节数组的简单实现方法
- c# List find()方法返回值的问题说明(返回结果为对象的指针)
- 关于双向链表的增删改查和排序的C++实现
- window.onload使用指南
- Android仿微信朋友圈实现滚动条下拉反弹效果
- Android实现网络多线程断点续传下载实例
- Android 监听手机GPS打开状态实现代码