为了学习递归,我从以下链接扩展了递归方法: 递归的工作方式 是我的代码:
class Program
{
static void Main(string[] args)
{
Method(3,1,2);
Console.ReadLine();
}
public static void Method(int flowerInVase, int a, int b)
{
if (flowerInVase > 0)
{
Method(flowerInVase - 1,b,a);
Console.WriteLine(+flowerInVase+", "+a+" ,"+b);
}
}
以下是输出:
1, 1 ,2
2, 2 ,1
3, 1 ,2
我了解堆栈的概念,但不了解第三次迭代中值a和b的切换。在递归调用method(3)之后,当flowerInVase = 1时,不应分别调用a = 2和b = 1的值,因为将调用递归函数method(flowerInVase-1,b,a)。需要了解递归函数在这种情况下的工作方式
慕姐4208626
相关分类