试图使用php函数返回数组找到gcd?

问题描述 投票:0回答:2

我正在尝试编写一个算法来找到GCD(最大公约数),但我的函数结果是Array我做错了!拜托,我不想要另一个aproche或一个现成的算法复制品,我想知道我做错了什么

<?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);

 ?>
php algorithm
2个回答
2
投票

首先:你想找到gcd或所有常见的除数?如果是gcd,那么你的代码中有一些错误: 1)用$final = array();替换$final = null;,或用return $final;替换return $final[0];; 2)用if ($i % $val1 === 0 && $i % $val2 === 0)取代if ($val1 % $i === 0 && $val2 % $i === 0); 3)用$final[] = $i;取代$final = $i; 要么: 1)用if ($i % $val1 === 0 && $i % $val2 === 0)替换if ($val1 % $i === 0 && $val2 % $i === 0); 2)用return $final;取代return max($final);;


0
投票

返回$ final是一个数组。对于打印阵列,请使用print_r(YOUR_VALUE)。如果你使用'echo'你只能打印字符串值,而不是数组;

© www.soinside.com 2019 - 2024. All rights reserved.