1

写一门叫数学的课。它是有一个名为 num 的属性。它还有一种称为阶乘的方法(函数)。此方法是从 1 开始,将所有整数乘以 num。如果 num 为 5,那么您将乘以 1*2*3*4*5。当然,您要循环执行此操作。

我应该使用哪个循环?暂时还是暂时?另外,我需要一个内循环吗?我从

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

}

但是,我不知道下一步该做什么……有什么建议吗?

4

4 回答 4

1

您可以使用任何循环来完成。for循环可以转换为whileanddo .. while和相反的也是如此。

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

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

要找到阶乘,您应该将所有值从 1 乘以您想要阶乘的数字。所以如果$num = 5. 只需要一个循环。你会想要运行这个循环。

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 回答