///计算数组{1,1,2,3,5,8,11...}第30位
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number;
//number = Recursion(30);
number = normal();
Console.WriteLine(number);
Console.ReadLine();
}
/// <summary>
/// 普通算法
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public static int normal()
{
int[] num = new int[30];
num[0] = 1;
num[1] = 1;
int first = num[0];
int second = num[1];
for (int i = 2; i < num.Length; i++)
{
num[i] = first + second;
first = second;
second = num[i];
}
return num[29];
}
/// <summary>
/// 使用递归计算数组{1,1,2,3,5,8,11...}
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public static int Recursion(int i)
{
int number;
if (i == 1 || i == 2)
{
number = 1;
}
else
{
number = Recursion(i - 1) + Recursion(i - 2);
}
return number;
}
}
}
补充:
/// <summary>
/// 递归求数组{1-2+3-4+5-6+...-100}
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public static int RecursionCount2(int i)
{
int count = 0;
if (i % 2 == 0)
{
count = -i;
}
else
{
count = i;
}
if (i == 1)
{
count = 1;
}
else
{
count = count + RecursionCount2(i - 1);
}
return count;
}