递归 - 打印数字序列

Dam*_*ith 0 c#

这是序列

1,1,2,4,7,11,16,22,29 ....

需要使用递归函数打印如上所述的系列

Mar*_*ell 6

我甚至不会把它写成递归:

static IEnumerable<int> Generate() {
    int value = 1, inc = 0;
    while(true) {
        yield return value;
        value += inc++;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果太深,递归通常是坏的...然后:

foreach(int x in Generate().Take(n))
    Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

你也可以用一种方法循环和打印......但那里的乐趣在哪里呢?

(这种方法故意选择显示有用的技术,而不是直接用作作业答案)