C#用遞歸算法實(shí)現(xiàn):一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34,求第30位數(shù)是多少
方法一:遞歸算法
/// <summary>
/// 一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34求第30位數(shù)是多少, 用遞歸算法實(shí)現(xiàn)。(C#語(yǔ)言)
/// </summary>
/// <param name="pos"></param>
/// <returns></returns>
public int GetNumberAtPos(int pos)
{
if(pos==0||pos==1)
{
return 1;
}
int res = GetNumberAtPos(pos - 1) + GetNumberAtPos(pos - 2);
return res;
}
方法二:不用遞歸
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace Test
{
public class Class1
{
private ArrayList list = new ArrayList();
public Class1()
{
}
public Class1(int num)
: base()
{
int i;
for (i = 1; i <= num; i++)
{
list.Add(Calculation(i));
}
}
private int Calculation(int num)
{
if (num == 1 || num == 2)
return 1;
else
return Convert.ToInt32(list[num - 2]) + Convert.ToInt32(list[num - 3]);
}
public int Calculation()
{
return Convert.ToInt32(list[list.Count - 1]);
}
}
public class test
{
public static void Main()
{
int j;
int num;
for (j = 1; j < 100; j++)
{
Console.WriteLine("你要計(jì)算第多少位:");
string readstr;
readstr = Console.ReadLine();
if (!string.IsNullOrEmpty(readstr))
{
if (int.TryParse(readstr, out num))
{
if (num < 1)
continue;
else
{
Class1 c1 = new Class1(num);
Console.WriteLine(c1.Calculation());
}
}
else
{
continue;
}
}
else
{
break;
}
}
}
}
}
方法三:用循環(huán)實(shí)現(xiàn)
public long getNumber(int pos)
{
long one = 1;
long two = 1;
if (pos == 0 || pos == 1)
{
return 1;
}
int i = 3;
long sum = 1;
while (i <= pos)
{
sum = one + two;
one = two;
two = sum;
i++;
}
return sum;
}
以上就是本文的全部?jī)?nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- c# 通過代碼開啟或關(guān)閉防火墻
- c# 防火墻添加/刪除 特定端口的示例
- C#創(chuàng)建不規(guī)則窗體的4種方式詳解
- C#常用的命名規(guī)則匯總
- c#圖片處理之圖片裁剪成不規(guī)則圖形
- c#棧變化規(guī)則圖解示例(棧的生長(zhǎng)與消亡)
- 正則表達(dá)式語(yǔ)法規(guī)則及在Javascript和C#中的使用方法
- c# 給button添加不規(guī)則的圖片以及用pictureBox替代button響應(yīng)點(diǎn)擊事件的方法
- C# 命名規(guī)則(挺不錯(cuò)的)
- C# 設(shè)置防火墻的創(chuàng)建規(guī)則
相關(guān)文章
Unity實(shí)現(xiàn)簡(jiǎn)單場(chǎng)景分層移動(dòng)
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡(jiǎn)單場(chǎng)景分層移動(dòng),分為前景、場(chǎng)景、背景等,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
C#實(shí)現(xiàn)定時(shí)關(guān)機(jī)小應(yīng)用
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)定時(shí)關(guān)機(jī)小應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
在C#中List集合使用First()方法獲取第一個(gè)元素的操作
這篇文章主要介紹了在C#中List集合使用First()方法獲取第一個(gè)元素的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-12-12
WPF實(shí)現(xiàn)雷達(dá)圖(仿英雄聯(lián)盟)的示例代碼
這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)雷達(dá)圖(仿英雄聯(lián)盟)的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-07-07
C# 獲取打印機(jī)當(dāng)前狀態(tài)的方法
C# 獲取打印機(jī)當(dāng)前狀態(tài)的方法,需要的朋友可以參考一下2013-04-04
C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法
這篇文章主要介紹了C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法,涉及C#中GridView的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
C#實(shí)現(xiàn)圖片上傳(PC端和APP)保存及 跨域上傳說(shuō)明
這篇文章主要介紹了C#實(shí)現(xiàn)圖片上傳(PC端和APP)保存及 跨域上傳說(shuō)明的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12
C# 使用SharpZipLib生成壓縮包的實(shí)例代碼
SharpZipLib是一個(gè)C#的類庫(kù),主要用來(lái)解壓縮Zip,GZip,BZip2,Tar等格式,是以托管程序集的方式實(shí)現(xiàn),可以方便的應(yīng)用于其他的項(xiàng)目之中。本文通過一個(gè)實(shí)例代碼給大家介紹了C# 使用SharpZipLib生成壓縮包的方法,感興趣的朋友跟隨小編一起看看吧2018-09-09

