欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#斐波那契數(shù)列(Fibonacci)(遞歸,非遞歸)實(shí)現(xiàn)代碼

 更新時(shí)間:2013年05月03日 10:55:53   作者:  
c#斐波那契數(shù)列(Fibonacci)(遞歸,非遞歸)實(shí)現(xiàn)代碼,需要的朋友可以參考一下

//Main

復(fù)制代碼 代碼如下:

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 Fibonacci Numbers:");
            int number = Convert.ToInt32(Console.ReadLine());
            //
            Function obj = new Function();
            Console.WriteLine();
            Console.Write("The {0} Fibonacci number is:{1}", number, obj.Fibonacci(number));
            //
            Console.WriteLine();
            Function obj2 = new Function(number);
            Console.Write("The {0} Fibonacci number is:{1}", number, obj2.BottomUpNotRecursion(number));
            //
            Console.WriteLine();
            Console.Write("The {0} Fibonacci number is:{1}", number, obj2.TopDownRecursion(number));
            Console.ReadKey();

        }
    }
}


//Class

復(fù)制代碼 代碼如下:

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

namespace Fibonacci
{
    class Function
    {
        private int[] array;

        public Function()
        {

        }

        /// <summary>
        /// Function
        /// </summary>
        /// <param name="length"></param>
        public Function(int length)
        {
            if (length > 0)
            {
                array = new int[length + 1];
                array[0] = 1;
                array[1] = 1;
            }
            if (length == 0)
            {
                array = new int[1];
                array[0] = 1;
            }
        }

        /// <summary>
        /// Fibonacci數(shù)列定義為:
        ///             無(wú)窮數(shù)列1,1,2,3,5,8,13,21,34,55,……
        ///        ┌ 1             n=0    
        ///   F(n)=│ 1             n=1
        ///        └ F(n-1)+F(n-2) n>1
        /// </summary>
        /// <param name="number">第幾個(gè)斐波那契數(shù)</param>
        /// <returns></returns>
        public int Fibonacci(int number)
        {
            if (number <= 1)
            {
                return 1;
            }
            else
            {
                return Fibonacci(number - 1) + Fibonacci(number - 2);
            }
        }

        /// <summary>
        /// 動(dòng)態(tài)規(guī)劃思想:
        ///     1.自底向上非遞歸算法
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public int BottomUpNotRecursion(int number)
        {
            int copynumber = 0;
            if (number < 2)
            {
                copynumber = 1;
            }
            else
            {
                int one = array[0];
                int two = array[1];

                for (int i = 2; i < array.Length; i++)
                {
                    array[i] = one + two;
                    one = two;
                    two = array[i];
                    copynumber = array[i];
                }
            }

            return copynumber;
        }

        /// <summary>
        ///     2.自頂向下遞歸算法
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public int TopDownRecursion(int number)
        {
            if (number <= 2)
            {
                if (number == 0)
                    return array[0];
                if (number == 1)
                    return array[1];
                if (number == 2)
                    return array[2] = array[0] + array[1];
            }
            else
            {
                //遞歸只是一個(gè)“牽引線”,目的是為了讓數(shù)組儲(chǔ)存值。
                TopDownRecursion(number - 1);
                array[number] = array[number - 1] + array[number - 2];
            }
            return array[number];
        }
    }
}

截圖

相關(guān)文章

  • c#如何顯式實(shí)現(xiàn)接口成員

    c#如何顯式實(shí)現(xiàn)接口成員

    這篇文章主要介紹了c#如何顯式實(shí)現(xiàn)接口成員,幫助大家更好的利用c#處理接口,感興趣的朋友可以了解下
    2020-10-10
  • C#微信開發(fā)第一章

    C#微信開發(fā)第一章

    這篇文章主要為大家詳細(xì)介紹了C#微信開發(fā)第一章,很有參考價(jià)值和實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-07-07
  • c# 基于wpf,開發(fā)OFD電子文檔閱讀器

    c# 基于wpf,開發(fā)OFD電子文檔閱讀器

    這篇文章主要介紹了c# 如何基于wpf,開發(fā)OFD電子文檔閱讀器,幫助大家更好的理解和學(xué)習(xí)使用c#的wpf技術(shù),感興趣的朋友可以了解下
    2021-03-03
  • 適合初學(xué)者開發(fā)的C#在線英漢詞典小程序

    適合初學(xué)者開發(fā)的C#在線英漢詞典小程序

    這篇文章主要為大家詳細(xì)介紹了適合初學(xué)者開發(fā)的C#在線英漢詞典小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • C#使用Matrix執(zhí)行縮放的方法

    C#使用Matrix執(zhí)行縮放的方法

    這篇文章主要介紹了C#使用Matrix執(zhí)行縮放的方法,實(shí)例分析了C#操作Matrix實(shí)現(xiàn)縮放的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C#特性-迭代器(上)及一些研究過(guò)程中的副產(chǎn)品

    C#特性-迭代器(上)及一些研究過(guò)程中的副產(chǎn)品

    這篇文章主要介紹了C#特性-迭代器(上)及一些研究過(guò)程中的副產(chǎn)品,需要的朋友可以參考下
    2014-12-12
  • C#實(shí)現(xiàn)二叉查找樹

    C#實(shí)現(xiàn)二叉查找樹

    本文詳細(xì)講解了C#實(shí)現(xiàn)二叉查找樹的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#如何通過(guò)RFC連接sap系統(tǒng)

    C#如何通過(guò)RFC連接sap系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#如何通過(guò)RFC連接sap系統(tǒng)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#?將程序添加開機(jī)啟動(dòng)的三種方式

    C#?將程序添加開機(jī)啟動(dòng)的三種方式

    本文主要介紹了C#?將程序添加開機(jī)啟動(dòng)的三種方式,主要包含開始菜單啟動(dòng),注冊(cè)表啟動(dòng)項(xiàng)和Windows 計(jì)劃任務(wù)這三種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • 探討C#中Dispose方法與Close方法的區(qū)別詳解

    探討C#中Dispose方法與Close方法的區(qū)別詳解

    本篇文章是對(duì)C#中Dispose方法與Close方法的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論