c\#피 보 나치 수열(Fibonacci)(재 귀,비 재 귀)구현 코드
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
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 :
/// 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"> </param>
/// <returns></returns>
public int Fibonacci(int number)
{
if (number <= 1)
{
return 1;
}
else
{
return Fibonacci(number - 1) + Fibonacci(number - 2);
}
}
/// <summary>
/// :
/// 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
{
// “ ”, 。
TopDownRecursion(number - 1);
array[number] = array[number - 1] + array[number - 2];
}
return array[number];
}
}
}
캡 처이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NYOJ 488 소수 링/ / 제목 링크:http://acm.nyist.net/JudgeOnline/problem.php?pid=488 이 문 제 는 hdu 1016 을 각색 한 것 이지 만 고 친 것 은 많 지 않다. 마찬가지 입 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.