//一切尽在规律中,认真观察,你会明白更多...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {

int i = 0;
            SimulationFib();

Console.ReadKey();
        }
        public static void SimulationFib()
        {

int n = 31;
            Console.WriteLine("Fib数列的递归实现........");
            #region Fib数列的递归实现
            for (int i = 1; i <= 32; i++)
            {
                Console.WriteLine(string.Format("Fib序列的第{0}项的值为:{1}", i, Fib(i)));

}
            #endregion
            Console.WriteLine("------------------------------");

Console.WriteLine("Fib数列的常规实现.............");

for (int i=1; i<=32; i++)
            {
                Console.WriteLine(string.Format("Fib序列的第{0}项的值为:{1}", i, fib(i)));
            }
        }
        /// <summary>
        /// fib数列的循环实现
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static int fib(int n)
        {
            if (n == 1 || n == 2)
            {
                return 1;
            }
            // 1 1 2 3
            int a = 1;
            int b = 1;
            int t = 0;
            for(int i=1;i<=n-2;i++)
            {

t = a;
                a = b;
                b = t + a;
               
               
            }

return b;
        }
        /// <summary>
        /// fib序列的递归实现
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static int Fib(int n)
        {
            if (n == 1 || n == 2)
            {
                return 1;

}

return Fib(n - 1) + Fib(n - 2);

}
    }
}

fibnacci数列的两种实现(递归实现和循环实现)的更多相关文章

  1. Fibonacci数列的两种实现方式

    斐波那契数列的形式为:1,1,2,3,5,8,13,21......从第三项开始,后面的每一项都是前面两项的和. 实现的方式有一下 两种: 一:递归方式实现 def fib(n): if n < ...

  2. 斐波那契数列 的两种实现方式(Java)

    import java.util.Scanner; /* 斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 如果设F(n)为该数列的第n ...

  3. python语言实现阶乘的两种方法---递归和迭代

    阶乘的递归实现,代码如下: def factorial(n): if n==1: return 1 else: return n*factorial(n-1) number = int(input(& ...

  4. Python开发【算法】:斐波那契数列两种时间复杂度

    斐波那契数列 概述: 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, ...

  5. 【剑指offer】递归循环两种方式反转链表

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25737023 本文分别用非递归和递归两种方式实现了链表的反转,在九度OJ上AC. 题目描写 ...

  6. pat1067 在离散数学中置换群思想上可用并查集和递归两种方法求解问题

    1.递归求解  注:叙述时 节点其实就是数字0-N-1 !!!最好用一个数组记录0-N-1每个数字的位置 !!!递归计算一个置换群内部的节点数 分为两种情况 累加M,M即是一个置换群所有数字在正确位置 ...

  7. java List递归排序,传统方式和java8 Stream优化递归,无序的列表按照父级关系进行排序(两种排序类型)

    当有一个List列表是无序的,List中的数据有parentid进行关联,通过java排序成两种排序类型: 所用的测试列表最顶级无parentid,若为特殊值,修改下判断方法即可. 第一种排序:按照树 ...

  8. 快速排序partition过程常见的两种写法+快速排序非递归实现

    这里不详细说明快速排序的原理,具体可参考here 快速排序主要是partition的过程,partition最常用有以下两种写法 第一种: int mypartition(vector<int& ...

  9. Hadoop基础-HDFS递归列出文件系统-FileStatus与listFiles两种方法

    Hadoop基础-HDFS递归列出文件系统-FileStatus与listFiles两种方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. fs.listFiles方法,返回Loc ...

随机推荐

  1. UVA - 1331 Minimax Triangulation (区间dp)(最优三角剖分)

    题目链接 把一个多边形剖分成若干个三角形,使得其中最大的三角形面积最小. 比较经典的一道dp问题 设dp[l][r]为把多边形[l,r]剖分成三角形的最大三角形面积中的最小值,则$dp[l][r]=m ...

  2. HihoCoder1366 逆序单词(字典树)

    逆序单词 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在英文中有很多逆序的单词,比如dog和god,evil和live等等. 现在给出一份包含N个单词的单词表,其中每 ...

  3. mysql中获取自增函数解析

    1 如果 一条语句多行插入,默认情况下是返回第一行的自增id 2 存储过程可以与外部共享自增,而函数和触发器不能,因为在函数和触发器关闭的时候,自增自动restore 3 获取自增id,不会因为并发产 ...

  4. hadoop-pig学习笔记

    A1 = LOAD '/luo/lzttxt01.txt' AS (col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double) ...

  5. rabbitmq的vhost与用户管理

    当我们在创建用户时,会指定用户能访问一个虚拟机,并且该用户只能访问该虚拟机下的队列和交换机,如果没有指定,默认的是”/”;一个rabbitmq服务器上可以运行多个vhost,以便于适用不同的业务需要, ...

  6. Machine Learning的Python环境设置

    Machine Learning目前经常使用的语言有Python.R和MATLAB.如果采用Python,需要安装大量的数学相关和Machine Learning的包.一般安装Anaconda,可以把 ...

  7. 【转】 Pro Android学习笔记(八七):了解Handler(1):组件和线程

    目录(?)[-] 主线程消息队列和线程池 查看线程信息 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingf ...

  8. Python使用类

    #coding:utf8 from selenium import webdriverfrom time import sleep class urlpage(object): #创建浏览器对象 de ...

  9. python第三十二天-----算法

    算法(Algorithm):一个计算过程,解决问题的方法时间复杂度:用来评估算法运行效率的一个东西ps:在日常使用中,请使用sort(),because no zuo no die! 1.冒泡排序:指 ...

  10. c语言-单链表(二)

    继续复习链表知识点,本章包含单链表的增加,删除,判断是否为空,和链表长度,以及链表的排序 几个知识点 1.链表的判断是否为空 //1.判断链表是否为空 bool isempty_list(PNODE ...