作者followaymis (abcde)
看板C_Sharp
标题[问题]请问递回函式的问题...
时间Mon Oct 15 20:38:18 2007
以下是求两个数字的最大公因数....
int A = 0;
int B = 0;
int MaxGCD = 0;
A = int.Parse(mTB_A.Text); //假设A是3
B = int.Parse(mTB_B.Text); //假设B是10
MaxGCD = GCD(A, B); //将A=3 B=10带入GCD
MessageBox.Show(this, "A=" + A + ",B=" + B + "\r\n" +
"最大公因数=" + MaxGCD.ToString(), "递回范例");
}
public int GCD(int M, int N)
{
if (M % N == 0) //逐步执行後..跑到这一段..因为3 % 10不等於0
{ 所以到return GCD(N, M % N);
return N;
}
else
{
return GCD(N, M % N); // 这时候return GCD(N=10,3%10) 再带一次
int GCD(int M, int N),问题来了...
单步执行电脑显示M = 10 N = 3.....
我知道M=10的由来..可是N为什麽=3呢?
难道3 % 10 = 3 ?
} // 这部份可以请高手解答吗???
} 再用单部执行下去又变成M = 3 N = 1
小弟真的不太懂这一段....
先谢谢各位回答了...
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.143.3
1F:推 psliurt:国中的数学告诉我,3除以10,得商数0,余数3...应该没错 10/15 21:30