列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少
阿新 • • 發佈:2018-12-07
列數的規則如下: 1、1、2、3、5、8、13、21、34…… 求第30位數是多少
分析:從第二個數開始,每位等於前兩個數相加
遞迴:
public static void Do()
{
int endnum = Foo(30);
Console.WriteLine(endnum.ToString());
}
public static int Foo(int index)
{
if (index <= 0)
{
return 0;
}
else if (index == 1 || index == 2)
{
return 1;
}
return Foo(index - 1) + Foo(index - 2);
}
迴圈:
public static void Do2()
{
Console.WriteLine(Foo2(30).ToString());
}
public static int Foo2(int positionIndex)
{
if (positionIndex <= 0)
{
throw new Exception("處理不了!");
}
else if (positionIndex <= 2)
{
return 1;
}
int index1 = 1;
int index2 = 1;
int index = 0;
for (int i = 2; i < positionIndex; i++)
{
index = index1 + index2;
index1 = index2;
index2 = index;
}
return index;
}