亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
斐波那契數(shù)列邏輯
創(chuàng)建斐波那契數(shù)列的各種方法
1.迭代方法
2.遞歸方法
3.使用數(shù)組的斐波那契
如何求斐波那契數(shù)列的第N項(xiàng)?
方法2
結(jié)論
首頁(yè) 后端開發(fā) C#.Net教程 C# 中的斐波那契數(shù)列

C# 中的斐波那契數(shù)列

Sep 03, 2024 pm 03:34 PM
c# c# tutorial

C#中的斐波那契數(shù)列斐波那契數(shù)列是著名的數(shù)列數(shù)列之一。序列是 0, 1, 1, 2, 3, 5, 8…。斐波那契數(shù)列從零和一開始,下一個(gè)數(shù)字是前兩個(gè)數(shù)字的總和。據(jù)說(shuō)斐波那契數(shù)列是由Leonardo Pisano Bigollo先生在13世紀(jì)創(chuàng)造的。斐波那契數(shù)列對(duì)于某些場(chǎng)景很有用?;旧纤畛跏怯脕?lái)解決兔子問(wèn)題,即一對(duì)兔子出生的數(shù)量。斐波那契數(shù)列在其他問(wèn)題中也很有用。

斐波那契數(shù)列邏輯

與斐波那契數(shù)列一樣,該數(shù)字是其前面兩個(gè)數(shù)字的總和。因此,如果我們有一個(gè)斐波那契數(shù)列,例如 0, 1, 1, 2, 3, 5, 8, 13, 21… 根據(jù)這個(gè),下一個(gè)數(shù)字將是其前兩個(gè)數(shù)字的總和,例如 13 和 21。所以下一個(gè)數(shù)字是 13 +21=34。

這是生成斐波那契數(shù)列的邏輯

F(n)= F(n-1) +F(n-2)

其中 F(n) 是術(shù)語(yǔ)編號(hào),F(xiàn)(n-1) +F(n-2) 是前面值的總和。

所以如果我們有系列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...

根據(jù)邏輯F(n)= F(n-1) +F(n-2)

F(n)= 55+89

F(n)= 144

下一學(xué)期是 144。

創(chuàng)建斐波那契數(shù)列的各種方法

斐波那契數(shù)列可以通過(guò)多種方式生成。

1.迭代方法

這種方式是生成系列的最簡(jiǎn)單的方法。

代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespaceFibonacciDemo
{
classProgram
{
staticint Fibonacci(int n)
{
intfirstnumber = 0, secondnumber = 1, result = 0;
if (n == 0) return 0; //It will return the first number of the series
if (n == 1) return 1; // it will return ?the second number of the series
for (int i = 2; i<= n; i++)? // main processing starts from here
{
result = firstnumber + secondnumber;
firstnumber = secondnumber;
secondnumber = result;
}
return result;
}
staticvoid Main(string[] args)
{
Console.Write("Length of the Fibonacci Series: ");
int length = Convert.ToInt32(Console.ReadLine());
for(int i = 0; i< length; i++)
{
Console.Write("{0} ", Fibonacci(i));
}
Console.ReadKey();
}
}
}

2.遞歸方法

這是解決這個(gè)問(wèn)題的另一種方法。

方法一

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespaceFibonacciDemo
{
classProgram
{
staticint Fibonacci(int n)
{
intfirstnumber = 0, secondnumber = 1, result = 0;
if (n == 0) return 0; //it will return the first number of the series
if (n == 1) return 1; // it will return the second number of the series
return Fibonacci(n-1) + Fibonacci(n-2);
}
staticvoid Main(string[] args)
{
Console.Write("Length of the Fibonacci Series: ");
int length = Convert.ToInt32(Console.ReadLine());
for(int i = 0; i< length; i++)
{
Console.Write("{0} ", Fibonacci(i));
}
Console.ReadKey();
}
}
}

方法2

using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FibonacciSeries
{
class Program
{
public static void Fibonacci
(
int firstnumber,
int secondnumber,
int count,
int length,
)
{
if (count <= length)
{
Console.Write("{0} ", firstnumber);
Fibonacci(secondnumber, firstnumber + secondnumber, count + 1, length);
}
}
public static void Main(string[] args)
{
Console.Write("Length of the Fibonacci Series: ");
int length = Convert.ToInt32(Console.ReadLine());
Fibonacci(0, 1, 1, length);
Console.ReadKey();
}
}
}

輸出:

C# 中的斐波那契數(shù)列

3.使用數(shù)組的斐波那契

代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Program
{
public static int[] Fibonacci(int number)
{
int[] a = new int[number];
a[0] = 0;
a[1] = 1;
for (int i = 2; i < number; i++)
{
a[i] = a[i - 2] + a[i - 1];
}
return a;
}
public static void Main(string[] args)
{
var b = Fibonacci(10);
foreach (var elements in b)
{
Console.WriteLine(elements);
}
}
}

輸出:

C# 中的斐波那契數(shù)列

如何求斐波那契數(shù)列的第N項(xiàng)?

方法如下

方法1

代碼:

using System;
namespace FibonacciSeries
{
class Program {
public static int NthTerm(int n)
{
if ((n == 0) || (n == 1))
{
return n;
}
else
{
return (NthTerm(n - 1) + NthTerm(n - 2));
}
}
public static void Main(string[] args)
{
Console.Write("Enter the nth term of the Fibonacci Series: ");
int number = Convert.ToInt32(Console.ReadLine());
number = number - 1;
Console.Write(NthTerm(number));
Console.ReadKey();
}
}
}

上面的代碼是求斐波那契數(shù)列的第n項(xiàng)。例如,如果我們想要查找該系列中的第 12th 項(xiàng),那么結(jié)果將為 89。

方法2

(O(Log t) 時(shí)間)。

還有另一種遞歸公式可用于查找第 t 個(gè)斐波那契數(shù) 如果 t 是偶數(shù)則 = t/2:

F(t) = [2*F(k-1) + F(k)]*F(k)

如果 t 是奇數(shù),則 k = (t + 1)/2

F(t) = F(k)*F(k) + F(k-1)*F(k-1)

斐波那契矩陣

求行列式后,我們將得到 (-1)t = Ft+1Ft-1 – Ft2

FmFt + Fm-1Ft-1 = Fm+t-1

通過(guò)將 t = t+1,

FmFt+1 + Fm-1Ft = Fm+t

設(shè) m = t

F2t-1 = Ft2 + Ft-12

F2t = (Ft-1 + Ft+1)Ft = (2Ft-1 + Ft)Ft

要獲得公式,我們將執(zhí)行以下操作

如果 t 是偶數(shù),則 k = t/2

如果 t 是奇數(shù),則 k = (t+1)/2

所以通過(guò)對(duì)這些數(shù)字進(jìn)行排序我們可以防止不斷使用STACK的內(nèi)存空間。它給出的時(shí)間復(fù)雜度為 O(n)。遞歸算法效率較低。

代碼:

int f(n) :
if( n==0 || n==1 )
return n;
else
return f(n-1) + f(n-2)

現(xiàn)在當(dāng)上述算法運(yùn)行 n=4

fn(4)

f(3)???????????? f(2)

f(2)?? f(1)???? f(1)?? f(0)

f(1)? f(0)

所以它是一棵樹。為了計(jì)算f(4),我們需要計(jì)算f(3)和f(2)等等。對(duì)于較小的值4,f(2)計(jì)算兩次,f(1)計(jì)算三次。添加的數(shù)量將會(huì)大量增長(zhǎng)。

有一個(gè)猜想,計(jì)算f(n)所需的加法次數(shù)為f(n+1) -1。

結(jié)論

這里迭代方法總是首選,因?yàn)樗懈斓姆椒▉?lái)解決此類問(wèn)題。這里我們將斐波那契數(shù)列的第一個(gè)和第二個(gè)數(shù)存儲(chǔ)在前一個(gè)數(shù)和前一個(gè)數(shù)中(這是兩個(gè)變量),并且我們使用當(dāng)前數(shù)來(lái)存儲(chǔ)斐波那契數(shù)。

以上是C# 中的斐波那契數(shù)列的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

c#多線程和異步的區(qū)別 c#多線程和異步的區(qū)別 Apr 03, 2025 pm 02:57 PM

多線程和異步的區(qū)別在于,多線程同時(shí)執(zhí)行多個(gè)線程,而異步在不阻塞當(dāng)前線程的情況下執(zhí)行操作。多線程用于計(jì)算密集型任務(wù),而異步用于用戶交互操作。多線程的優(yōu)勢(shì)是提高計(jì)算性能,異步的優(yōu)勢(shì)是不阻塞 UI 線程。選擇多線程還是異步取決于任務(wù)性質(zhì):計(jì)算密集型任務(wù)使用多線程,與外部資源交互且需要保持 UI 響應(yīng)的任務(wù)使用異步。

C#與C:歷史,進(jìn)化和未來(lái)前景 C#與C:歷史,進(jìn)化和未來(lái)前景 Apr 19, 2025 am 12:07 AM

C#和C 的歷史與演變各有特色,未來(lái)前景也不同。1.C 由BjarneStroustrup在1983年發(fā)明,旨在將面向?qū)ο缶幊桃隒語(yǔ)言,其演變歷程包括多次標(biāo)準(zhǔn)化,如C 11引入auto關(guān)鍵字和lambda表達(dá)式,C 20引入概念和協(xié)程,未來(lái)將專注于性能和系統(tǒng)級(jí)編程。2.C#由微軟在2000年發(fā)布,結(jié)合C 和Java的優(yōu)點(diǎn),其演變注重簡(jiǎn)潔性和生產(chǎn)力,如C#2.0引入泛型,C#5.0引入異步編程,未來(lái)將專注于開發(fā)者的生產(chǎn)力和云計(jì)算。

xml怎么改格式 xml怎么改格式 Apr 03, 2025 am 08:42 AM

可以采用多種方法修改 XML 格式:使用文本編輯器(如 Notepad )進(jìn)行手工編輯;使用在線或桌面 XML 格式化工具(如 XMLbeautifier)進(jìn)行自動(dòng)格式化;使用 XML 轉(zhuǎn)換工具(如 XSLT)定義轉(zhuǎn)換規(guī)則;或者使用編程語(yǔ)言(如 Python)進(jìn)行解析和操作。修改時(shí)需謹(jǐn)慎,并備份原始文件。

xml如何轉(zhuǎn)化為word xml如何轉(zhuǎn)化為word Apr 03, 2025 am 08:15 AM

有三種將 XML 轉(zhuǎn)換為 Word 的方法:使用 Microsoft Word、使用 XML 轉(zhuǎn)換器或使用編程語(yǔ)言。

xml怎么轉(zhuǎn)換成json xml怎么轉(zhuǎn)換成json Apr 03, 2025 am 09:09 AM

將 XML 轉(zhuǎn)換為 JSON 的方法包括:使用編程語(yǔ)言(如 Python、Java、C#)編寫腳本或程序進(jìn)行轉(zhuǎn)換;使用在線工具(如 XML 轉(zhuǎn)換為 JSON、Gojko's XML 轉(zhuǎn)換器、XML 在線工具)粘貼或上傳 XML 數(shù)據(jù)并選擇 JSON 格式輸出;使用 XML 到 JSON 轉(zhuǎn)換器(如 Oxygen XML Editor、Stylus Studio、Altova XMLSpy)執(zhí)行轉(zhuǎn)換任務(wù);使用 XSLT 樣式表將 XML 轉(zhuǎn)換為 JSON;使用數(shù)據(jù)集成工具(如 Informatic

c#多線程編程是什么  c#多線程編程用處 c#多線程編程是什么 c#多線程編程用處 Apr 03, 2025 pm 02:45 PM

C# 多線程編程是一種讓程序同時(shí)執(zhí)行多項(xiàng)任務(wù)的技術(shù),它可以通過(guò)提升性能、提高響應(yīng)能力和實(shí)現(xiàn)并行處理來(lái)提高程序效率。雖然 Thread 類提供了直接創(chuàng)建線程的方法,但 Task 和 async/await 等高級(jí)工具可以提供更安全的異步操作和更簡(jiǎn)潔的代碼結(jié)構(gòu)。多線程編程中常見(jiàn)的難題包括死鎖、競(jìng)態(tài)條件和資源泄漏,需要仔細(xì)設(shè)計(jì)線程模型和使用適當(dāng)?shù)耐綑C(jī)制來(lái)避免這些問(wèn)題。

C#.NET:使用.NET生態(tài)系統(tǒng)構(gòu)建應(yīng)用程序 C#.NET:使用.NET生態(tài)系統(tǒng)構(gòu)建應(yīng)用程序 Apr 27, 2025 am 12:12 AM

如何利用.NET構(gòu)建應(yīng)用?使用.NET構(gòu)建應(yīng)用可以通過(guò)以下步驟實(shí)現(xiàn):1)了解.NET基礎(chǔ)知識(shí),包括C#語(yǔ)言和跨平臺(tái)開發(fā)支持;2)學(xué)習(xí)核心概念,如.NET生態(tài)系統(tǒng)的組件和工作原理;3)掌握基本和高級(jí)用法,從簡(jiǎn)單控制臺(tái)應(yīng)用到復(fù)雜的WebAPI和數(shù)據(jù)庫(kù)操作;4)熟悉常見(jiàn)錯(cuò)誤與調(diào)試技巧,如配置和數(shù)據(jù)庫(kù)連接問(wèn)題;5)應(yīng)用性能優(yōu)化與最佳實(shí)踐,如異步編程和緩存。

從網(wǎng)絡(luò)到桌面:C#.NET的多功能性 從網(wǎng)絡(luò)到桌面:C#.NET的多功能性 Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

See all articles