1

math というクラスを作成します。num というプロパティを 1 つ持つことです。また、階乗と呼ばれるメソッド (関数) が 1 つあります。この方法では、1 から開始し、すべての整数を num に掛けます。num が 5 の場合、1*2*3*4*5 を乗算します。もちろん、これをループで行う必要があります。

どのループを使用すればよいですか? しばらくの間ですか?また、内側のループが必要ですか? 私はから始めました

For (i = 1; i <= 5; i++)
{

}

しかし、私は次に何をすべきかで立ち往生しています...何か提案はありますか?

4

4 に答える 4

1

任意のループを使用して実行できます。loop はandforに変換でき、逆も真です。whiledo .. while

for(i=0;i<5;i++)

と同じです

i=0; while(i<5){i++;}

階乗を見つけるには、1 から階乗を求める数値までのすべての値を乗算する必要があります。だからもし$num = 5。必要なループは 1 つだけです。このループを実行したいと思うでしょう。

for($i=1;$i<$num;$i++){
    $num*=$i;
}

質問は宿題のように思えるので、ここでは完全な解決策を示していません。私があなたに完全な解決策を与えるなら、それはスプーンで食べます.

于 2012-09-27T05:22:45.683 に答える
0
$result = 1;
$target = 5;
for ($i = 1;$ i <= $target; $i++)
{
    $result *= $i;
}
echo $result;

また

$result = 1;
$target = 5;
while($target > 0) {
    $result *= $target;
    $target--; // You could do this all in one line, but for learners, this is clearer.
}

echo $result;
于 2012-09-27T05:17:07.823 に答える
0

各反復で、階乗の合計に次の値を掛けます。$i

class Math {

    public static function Factorial($factorial) {
        $output = 1;

        for($i = 2; $i <= $factorial; $i++)
            $output *= $i;

        return $output; 
    }

}
于 2012-09-27T05:18:14.707 に答える
0

while(i--)ループが好きなところにたどり着きました:

<?php

class Math {

    public $num = 0;

    public function factorial() {
        $result = 1;
        $num = $this->num;

        while ($num) {
            $result *= $num--;
        }

        return $result;
    }

}

$factor = new Math();

$factor->num = 5;

echo $factor->factorial();

?>

http://codepad.org/hUOgAoz2

于 2012-09-27T05:26:44.283 に答える