如何打印阶乘系列?

时间:2015-06-26 06:09:48

标签: php algorithm function

我想知道如何在php中打印factorial。我试图在Google上搜索,但无法找到具有可靠证明示例(Php Code)的结果。我发现这个forloop,我对此并不满意。

for($c=3; $c>=1;$c--){
        for($d=$c; $d>=1; $d--){
        echo $c;
            }// for ends
            echo "<br />";
    }// for ends

Out Put 333 22 1

我希望将其打印为输出:

5 * 4 * 3 * 2 * 1

4 个答案:

答案 0 :(得分:2)

计算阶乘,

<TreeView ItemsSource="{Binding ClassesWithPupils, UpdateSourceTrigger=PropertyChanged}">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding}">
            <Label Content="{Binding Class.Name}"/>
            <HierarchicalDataTemplate.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Pupils}">
                    <Label Content="{Binding Name}"/>
                </HierarchicalDataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

并使用它,

String className = "UsernamePart";
Class<?> genericClass = Class.forName(className);
Class arrayClass = java.lang.reflect.Array.newInstance(genericClass, 0).getClass();
Object[] array = (Object[]) new Gson().fromJson(input, arrayClass);
List parts = com.google.common.collect.Lists.newArrayList(array);

<小时/> 如果要打印factorial,

function factorial($in) {
    return array_product(range(1, $in));
}

并使用它,

echo factorial(5);

答案 1 :(得分:1)

计算阶乘非常简单,也不需要递归:

function factorial($x) {
    $r = 1;
    for ($i = 2; $i <= $x; ++$i) {
        $r *= $i;
    }
    return $r;
}

echo factorial(10), PHP_EOL;

答案 2 :(得分:0)

试试这个

function factorial($number) { 

    if ($number < 2) { 
        return 1; 
    } else { 
        return ($number * factorial($number-1)); 
    } 
}

答案 3 :(得分:0)

使用PHP内置的以下功能。

$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

有关详情,请参阅 HERE