递归VS循环
求第三位数前2位之和 ,一列数的规则如下: 1、1、2、3
class Program
{
static void Main(string[] args)
{
while (true)
{
int position = Convert.ToInt32(Console.ReadLine());
Console.Write("for循环:");
Console.WriteLine(GetFooValueFor(position));
Console.Write("递归算法:");
Console.WriteLine(GetFooValueDiGui(position));
}
}
static long GetFooValueDiGui(int position)
{
long reslut = 1;
if (position < 3)
{
return reslut;
}
else
{
return GetFooValueDiGui(position - 1) + GetFooValueDiGui(position - 2);
}
}
static long GetFooValueFor(int position)
{
long reslut = 1;
if (position < 3)
{
return reslut;
}
else
{
long first = 1;
long second = 1;
for (int index = 3; index <= position; index++)
{
reslut = first + second;
first = second;
second = reslut;
}
}
return reslut;
}
}
}