斐波那契数列

定义:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。

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

namespace Fibonacci
{
    class Program
    {
        static void Main(string[] args)
        {
            int ret1 = FibonacciSort(10);
            int ret2 = FibonacciSort2(10);
            Console.WriteLine("斐波那契数列,递归算法:{0}",ret1);
            Console.WriteLine("斐波那契数列,普通算法:{0}", ret2);
        }

        /// <summary>
        /// 斐波那契数列,递归算法
        /// </summary>
        /// <param name="num"></param>
        public static int FibonacciSort(int num)
        {
            if (num <= 0)
            {
                return 0;
            }else if (num > 0 && num < 3)
            {
                return 1;
            }else
            {
                return FibonacciSort(num - 1) + FibonacciSort(num - 2);
            }
        }

        /// <summary>
        /// 斐波那契数列,普通算法
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public static int FibonacciSort2(int num)
        {
           if (num <= 0)
            {
                return 0;
            }
            else if (num > 0 && num < 3)
            {
                return 1;
            }
            int ret = 0;
            int num1 = 1;
            int num2 = 1;
            for (int i = 0; i < num - 2; i++)
            {
                ret = num1 + num2;
                num1 = num2;
                num2 = ret;
            }

            return ret;
        }
    }
}

运行结果:
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容