PHP程序:计算阶乘末尾零的个数


什么是阶乘?

非负整数的阶乘,用符号“!”表示,是小于或等于该数的所有正整数的乘积。换句话说,一个数的阶乘是通过将该数乘以它下面所有正整数得到的。

例如,5的阶乘计算如下:

5! = 5 x 4 x 3 x 2 x 1 = 120

同样,0的阶乘定义为1。

0! = 1

阶乘经常用于数学和组合学中,用于计算对象的排列、组合和安排。它们还在概率、微积分和数学的其他各个领域都有应用。

PHP程序:计算阶乘末尾零的个数

在一个数的阶乘中,末尾零是指阶乘十进制表示中末尾连续零的个数。

例如 10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1

进行乘法运算

10! = 3,628,800

10的阶乘是3,628,800。

10的阶乘末尾零的个数是2,因为阶乘末尾连续零的个数。

示例

<?php

function countTrailingZeroes($number) {
   $count = 0;

   // Divide the number by powers of 5 and count the quotient
   // The quotient represents the number of trailing zeroes
   while ($number >= 5) {
      $number = (int) ($number / 5);
      $count += $number;
   }

   return $count;
}

// Test the function
$number = 20;
$trailingZeroes = countTrailingZeroes($number);
echo "The factorial of $number has $trailingZeroes trailing zeroes.<br>";

// Test the function
$number = 14;
$trailingZeroes = countTrailingZeroes($number);
echo "The factorial of $number has $trailingZeroes trailing zeroes.";
?> 

输出

The factorial of 20 has 4 trailing zeroes.
The factorial of 14 has 2 trailing zeroes.

代码解释

示例代码中调用了一个PHP函数`countTrailingZeroes`。此函数计算给定数字阶乘中末尾零的个数。它通过将数字除以5的幂并计算商来实现此目的。`while`循环持续运行,只要数字大于或等于5。在循环中,使用整数除法将数字除以5,以计算当前数字中5的因子的个数。生成的商加到名为`$count`的变量中,该变量跟踪末尾零的计数。循环结束后,函数返回最终计数。

在函数下方,有一个测试用例,其中使用值为123调用该函数。这使用`countTrailingZeroes`函数计算20的阶乘中末尾零的个数。结果存储在一个名为`$trailingZeroes`的变量中。最后,使用`echo`显示结果,提供输入数字及其阶乘中末尾零的个数。

在这种情况下,20的阶乘是2,432,902,008,176,640,000,因此其阶乘中末尾零的个数是4,而14的阶乘是87,178,291,200。因此,其阶乘中末尾零的个数是2。

结论

提供的PHP程序有效地计算给定数字阶乘中末尾零的个数。它使用`while`循环将数字除以5的幂并计算商,表示末尾零的个数。通过利用这种方法,程序避免了计算整个阶乘的需要。这种技术之所以有效,是因为阶乘中的末尾零源于5的因子。因此,通过计算5的因子,程序准确地确定了末尾零的个数。此代码为计算阶乘中的末尾零提供了一种方便且高效的解决方案,有助于各种数学和编程应用。

更新于:2023年8月2日

浏览量:194

开启您的职业生涯

完成课程获得认证

开始学习
广告