2つの整数の最大公約数を見つける次の関数があります。リターンgreatestCommonDivisor(b、(a%b));で何が起こっているのかわかりません。部。
greatCommonDivisor(8、12)を実行すると、4が得られますが、これは正しいですが、戻り値を評価しようとすると、greatestCommonDivisor(b、(a%b)); パートIは(12、(8%12))を取得します。これは、(12、0)に単純化されます。これはどのように4に等しいのでしょうか。
// Finds greatest common divisor
function greatestCommonDivisor(a, b) {
if (b == 0) {
return a;
}
return greatestCommonDivisor(b, (a % b));
}