实现1,1,2,3,5,8,13,..... public int GetValue(int i)
{
int m = 0;
if (i == 0)
{
m = 0;
}
else
if (i == 1)
{
m = 1;
}
else
if (i >= 2)
{
m = GetValue(i - 1) + GetValue(i - 2);
}
return m;
}我将参数设为5时没有什么问题,但是我将参数设为30时,程序很慢,好象都计算不出来结果?
算法应该没有问题的,请大家看看?
{
int m = 0;
if (i == 0)
{
m = 0;
}
else
if (i == 1)
{
m = 1;
}
else
if (i >= 2)
{
m = GetValue(i - 1) + GetValue(i - 2);
}
return m;
}我将参数设为5时没有什么问题,但是我将参数设为30时,程序很慢,好象都计算不出来结果?
算法应该没有问题的,请大家看看?
实际中确实有这样的需求,如果大于40,有没有更好的解决方案?
public int GetValue(int n)
{
int i = 1, j = 1,temp;
for (int k = 2; k < n; k++)
{
temp = i;
i = j;
j += temp;
}
return j;
}
那估計是我電腦的問題了