我甚至不会把它写成递归:
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)
你也可以用一种方法循环和打印......但那里的乐趣在哪里呢?
(这种方法故意选择显示有用的技术,而不是直接用作作业答案)