0

因数分解を必要とする合成除算を行うプログラムを作成しようとしていたので、機能する整数を因数分解するこの関数を作成しましたが、php 配列$factorsの値は決して変更されません。どんな助けでも大歓迎です。

$factors=array();
$i;
function factor($x){
    if($x==0){
        echo "(0,0)";
        } else {
            $n=false;
            if($x<0) {
                $x=abs($x);
                $n=true;
            }
            for($i=2; $i<=$x; $i++) {
                if($x%$i==0){
                    if($n){
                        $factors[(count($factors))]=(-1*($x/$i));
                        $factors[(count($factors))]=($i);
                        $factors[(count($factors))]=($x/$i);
                        $factors[(count($factors))]=(-1*$i);
                    } else {
                        $factors[(count($factors))]=($x/$i);
                        $factors[(count($factors))]=($i);
                    }
                }
            }
        }
    }
factor(-4);
4

1 に答える 1

0

これを試して

function factor($x){
     $factors=array();
    if($x==0){
        echo "(0,0)";
    } else {
        $n=false;
        if($x<0) {
            $x=abs($x);
            $n=true;
        }
        for($i=2; $i<=$x; $i++) {
            if($x%$i==0){
                if($n){
                    $factors[(count($factors))]=(-1*($x/$i));
                    $factors[(count($factors))]=($i);
                    $factors[(count($factors))]=($x/$i);
                    $factors[(count($factors))]=(-1*$i);
                } else {
                    $factors[(count($factors))]=($x/$i);
                    $factors[(count($factors))]=($i);
                }
            }
        } //end for
       echo '(' . implode(',', $factors). ')';
    } //end if $x == 0
}
factor(-4);

$factors何も返したり出力したりしていないことに加えて、関数の範囲外です。あなたが反響するのを見て、(0,0)私はあなたがそれを反響させたいと思ったと(2,4,8)思いました..

于 2016-09-13T04:05:55.747 に答える