我想寫一個算法來找到GCD(最大公約數),但我的函數的結果是Array
我做錯了!請不要另一個aproche或一個準備算法copie過去我想知道我在做什麼錯試圖找到使用php函數返回數組的gcd?
<?php
function pgcd($val1, $val2){
if (!is_numeric($val1) || !is_numeric($val2)){
return null;
}
$i = 1;
$final = array();
while($i <= min($val1, $val2)){
if ($i % $val1 === 0 && $i % $val2 === 0){
$final[] = $i;
}
$i++;
}
return $final;
}
echo pgcd(120,420);
?>
你在做什麼錯誤是試圖回顯一個數組..... var_dump或print_r或遍歷它並回顯值 –
你的數組返回的是__all__公共分母......你會然後需要對該數組進行排序(從最小到最大),然後彈出最後一個值,這將是GCD –
如果您不是僅僅爲了練習而編寫此函數,則可以查看[GMP](http: //php.net/manual/en/book.gmp.php)擴展,更確切地說它提供了[gmp_gcd](http://php.net/manual/en/function.gmp-gcd.php)函數。 – mrun