【发布时间】:2017-05-02 17:43:04
【问题描述】:
我正在编写一个程序来计算斐波那契数列中的特定值。递归方法效果很好,但是当我尝试使用 for 循环时,效果不太好:
class Program
{
static int loopF(int n)
{
int result=0;
if (n == 1)
{
result = n;
}
else if (n == 2)
{
result = n;
}
else if (n>2)
{
int S1 = 1; int S2 = 2;
for (int i = 3; i>n; i++) {
result = S1 + S2;
S1 = S2;
S2 = result;
}
}
else{
Console.WriteLine("Input Error");
}
return (result);
}
static void Main()
{
Console.WriteLine(loopF(10)); //it gives me 0; wrong
Console.WriteLine(loopF(1)); //it gives me 1; correct.
}
}
有人知道我哪里出错了吗?提前致谢。
【问题讨论】:
-
有什么不顺利?
-
it doesn't work so well不是一个好的错误描述。里面没有信息... -
i>n?你弄乱了循环条件,所以你的身体永远不会执行。 -
你的方法不是递归的。 (并不是说你应该递归地实现这个算法,因为你不应该。)