递归方法在 C# 中的工作原理
本文关键字:工作 递归方法 | 更新日期: 2023-09-27 18:35:57
我很难理解递归方法调用。
这是我试图弄清楚的下面的代码示例?请解释它是如何工作的。
"num"(参数)值是如何递减和递增的?
class green
{
public int fact(int num)
{
int a;
int b;
int c;
if (num == 1)
{
return 1;
}
else
{
a = num;
Console.Write(a);
Console.Write(" #a ");
b=fact(num - 1); // How many time's this line will be executed?
Console.Write(b);
Console.Write(" #b " );
c=a*b;
b的最终值是6,a是4?
Console.Write(c);
Console.Write(" #c ");
Console.ReadKey();
}
return c;
}
public void display()
{
Console.WriteLine("fact : {0}", fact(4));
}
}
class _Program
{
static void Main(string[] args)
{
green g=new green();
g.display();
Console.ReadKey();
}
}
}
如果你把你的类改成这个...
class Green
{
public int fact(int num)
{
int a;
int b;
int c;
if (num == 1)
{
return 1;
}
else
{
a = num;
Console.Write(a);
Console.Write(" #a ");
return a * fact(num - 1);
}
}
}
。然后,当输入为 24 时,您将获得 4 的结果。 其他人评论了您原始问题中的算法缺陷。
为损坏的格式道歉,似乎 SO 格式化程序正在闪烁......