【发布时间】:2011-03-27 18:08:50
【问题描述】:
我从网上找到的一个例子改编了这个......
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这样的东西?您可以做的是首先计算数字列表中每个项目的素数分解。交点中的主要因子的乘积是最大公分母。然后就像在您的示例中一样计算相应的比率。
标签: php math function recursion