我从网上找到的一个例子做了适当的调整...
function ratio($a, $b) {
$_a = $a;
$_b = $b;
while ($_b != 0) {
$remainder = $_a % $_b;
$_a = $_b;
$_b = $remainder;
}
$gcd = abs($_a);
return ($a / $gcd) . ':' . ($b / $gcd);
}
echo ratio(9, 3); // 3:1
现在我想要使用func_get_args()
并返回多个数字的比率。这看起来像一个递归问题,而递归让我感到害怕(尤其是当我的解决方案无限循环时)!
我该如何修改代码使其能够接受任意数量的参数?
谢谢。
2:3:5
吗?您可以先计算列表中每个数字的质因数分解。交集中质因数的乘积是最大公约数。然后像您的示例一样计算各自的比率。 - Jochem Schulenklopper