public int Fibonacci(int x)
{
int prev = -1;
int next = 1;
for (int i = 0; i < x; i++)
{
int sum = prev + next;
prev = next;
next = sum;
Console.WriteLine(sum);
}
return sum; // plz teel me how can i return whole list ??
}
Run Code Online (Sandbox Code Playgroud)
如何返回上述系列的整个输出?即如果x = 3然后0 1 1 2那么我该如何归还呢?
And*_*are 17
试试这个:
public IEnumerable<int> Fibonacci(int x)
{
int prev = -1;
int next = 1;
for (int i = 0; i < x; i++)
{
int sum = prev + next;
prev = next;
next = sum;
yield return sum;
}
}
Run Code Online (Sandbox Code Playgroud)
这将计算整个列表并在完成后返回(热切评估):
public IEnumerable<int> Fibonacci(int x)
{
IList<int> fibs = new List<int>();
int prev = -1; // previous val
int next = 1;
for (int i = 0; i < x; i++)
{
int sum = prev + next;
prev = next;
next = sum;
fibs.Add(sum);
}
return fibs;
}
Run Code Online (Sandbox Code Playgroud)
这将计算每个项目并在需要时返回它(延迟评估),使用yield:
public IEnumerable<int> Fibonacci(int x)
{
int prev = -1;
int next = 1;
for (int i = 0; i < x; i++)
{
int sum = prev + next;
prev = next;
next = sum;
yield return sum;
}
}
Run Code Online (Sandbox Code Playgroud)