如何在此fibonacci中返回For循环中的值?

时间:2017-01-01 13:02:38

标签: c# return fibonacci

如何从此斐波纳契的For循环中返回值?
现在它只返回 发送= 0 。 我的目标是将值放入Main方法的列表中。

 public static int Fibo( int count) 
    {
        int i, f1 = 0, f2 = 1, send = 0;  
        for (i = 0; i <= count; i++)
        {
            int f3 = f1 + f2; 
            f3 = send;                
            f1 = f2;
            f2 = f3;
        }
        return send;
    }

2 个答案:

答案 0 :(得分:1)

如果你想返回&#34;发送&#34;您需要在代码的某个时刻写出&#34; send = f3;&#34;

答案 1 :(得分:0)

如果要将数字具体化为列表,为什么不实现IEnumerable<int>生成器?关键功能是使用yield return(返回并继续执行例程)而不是return

public static IEnumerable<int> Fibo() {
  int left = 0;
  int right = 1;

  yield return left;
  yield return right;

  while (true) {
    int result = left + right;

    // returning from a loop while keep on looping
    yield return result;

    left = right;
    right = result; 
  }
}

...

List<int> myList = Fibo().Take(10);