这是序列
1,1,2,4,7,11,16,22,29 ....
需要使用递归函数
打印上述系列答案 0 :(得分:6)
我甚至不会把它写成递归:
static IEnumerable<int> Generate() {
int value = 1, inc = 0;
while(true) {
yield return value;
value += inc++;
}
}
如果太深,递归通常很糟糕......然后:
foreach(int x in Generate().Take(n))
Console.WriteLine(x);
你也可以用一种方法循环和打印......但那里的乐趣在哪里呢?
(这种方法是故意选择显示一种有用的技巧,而不是直接用作作业答案)
答案 1 :(得分:2)
这样的事情:
public void Numbers(int iteration, int number, int limit)
{
if(iteration < limit) {
Console.WriteLine(number);
Numbers(iteration + 1, number + iteration);
}
}
Numbers(0,1,5);
答案 2 :(得分:0)
public static void PrintNumbers(int current, int index)
{
Console.Write(current + ", ");
PrintNumbers(current + index, index + 1);
}
PrintNumbers(1, 0);
请注意,此回退不会终止,因此运行它会导致StackOverflowException。