搜索

PHP 中的阶乘

Aug 29, 2024 pm 01:12 PM
php

在开始学习 PHP 中的阶乘之前,让我们先了解一下阶乘这个术语。数字的阶乘是从 1 开始到数字本身的所有数字的乘积。在计算所有数字的乘积时,数字本身也包含在内。

广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

数字的阶乘仅针对正整数计算。 0 的阶乘始终为 1,负数的阶乘不存在。它由前面带有数字的“!”表示。示例 n!其中 n 是数字

所以,

5的阶乘!表示 5 的阶乘

7的阶乘!表示 7 的阶乘

例如,数字 5 的阶乘为:

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

同样,数字 7 的阶乘为:

7! = 7*6*5*4*3*2*1 = 5040

等等..

现在我们如何实际找到阶乘,我们可以使用

  1. for 循环(无递归)
  2. 使用递归

阶乘逻辑

获取数字阶乘的逻辑如下。

  1. 获取要计算阶乘的数。
  2. 获取从 1 到该数字的所有数字。
  3. 计算所有数字的乘积。

记住0的阶乘! = 1.

如何在 PHP 中求阶乘?

我们将进一步学习使用不同的方法使用 PHP 代码计算给定数字的阶乘。就像使用递归一样,有用户输入的递归,没有递归,没有用户输入的递归。

关于递归

与其他语言一样,PHP 也支持递归。什么是递归?当函数调用自身时称为递归。递归函数在函数内调用自身。

示例#1

在下面的 PHP 程序中计算数字 5 的阶乘。这是一个使用 for 循环的简单程序。这个 for 循环在从数字开始的数字序列上迭代,直到达到 1。

代码:

<?php //example to calculate factorial of a number using simple for loop
//declaring the input number as 5
$input=5;
//declaring the fact variable as 1
$fact =1;
//iterating using for loop
for($i=$input; $i>=1;$i--) {
// multiply each number up to 5 by its previous consecutive number
$fact = $fact * $i;
}
// Print output of the program
echo '<br>'. 'The factorial of the number 5 is '. $fact
?>

输出:

PHP 中的阶乘

示例#2

在下面的程序中,我们使用了一个简单的 HTML 表单,其中包含输入文本和提交按钮。输入框用于获取用户输入。提交按钮用于提交表单数据。接下来是迭代 for 循环的 PHP 代码,其中存在我们在上一个程序中学到的所有逻辑。所以现在输入表单使用相同的逻辑。

如果用户通过表单中的输入框输入正数,则计算该数的阶乘并打印结果。

代码:


<title> Factorial Program</title>


=1;$i--) { $fact = $fact * $i; } // Print output of the program echo '
'. 'The factorial of the number '.$input.' is ' . $fact; } ?>

输出:

PHP 中的阶乘

示例#3

在上面的两个程序中,我们没有将逻辑包装在函数中。这里我们将主要逻辑封装在一个函数中,然后调用该函数来计算 PHP 中给定数字的阶乘。这里函数的名称是 Factorial_Function,它求数字 8 的阶乘。

代码:

//example to calculate factorial of a number using function
//defining the factorial function
function Factorial_Function($number) {
$input = $number;
$fact=1;
//iterating using for loop
for($i=$input; $i>=1;$i--) {
$fact = $fact * $i;
}
return $fact;
}
//calling the factorial function
$result = Factorial_Function(8);
echo 'Factorial of the number 8 is '.$result;
?>

输出 :

PHP 中的阶乘

示例#4

我们知道递归就是在函数内调用函数。在下面的示例中,我们将使用递归并使用 PHP 代码查找数字的阶乘。主要逻辑包含在函数名称 Factorial_Function 中。在此函数中,如果输入大于 1,则再次调用相同的函数,如果输入小于或等于 1,则返回 1。

使用递归

代码:

<?php //Example to demonstrate factorial of a number using recursion
//function containing logic of factorial
function Factorial_Function($input)
{
// if the input is less than or equal to 1 then return
if($input <=1) {
return 1;
}
// else do a recursive call and continue to find the factorial
return $input * Factorial_Function($input-1);  //doing a recursive call
}
echo "Factorial of 9 is ".Factorial_Function(9);
?>

输出:

PHP 中的阶乘

示例#5

我们现在已经了解了递归。在下面的程序中,我们使用了递归,递归应用于本示例中用户输入的数字。

代码:


<title> Factorial Program</title>


'. 'The factorial of the number '.$input.' is ' . Factorial_Function($input); } ?>

输出:

PHP 中的阶乘

结论

本文涵盖了使用 PHP 求数字阶乘的所有解释和示例。使用递归和非递归方式解释示例,并结合程序上下文进行递归解释。希望这篇文章能为您提供有益的学习和掌握。

以上是PHP 中的阶乘的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
解释负载平衡如何影响会话管理以及如何解决。解释负载平衡如何影响会话管理以及如何解决。Apr 29, 2025 am 12:42 AM

负载均衡会影响会话管理,但可以通过会话复制、会话粘性和集中式会话存储解决。1.会话复制在服务器间复制会话数据。2.会话粘性将用户请求定向到同一服务器。3.集中式会话存储使用独立服务器如Redis存储会话数据,确保数据共享。

说明会话锁定的概念。说明会话锁定的概念。Apr 29, 2025 am 12:39 AM

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

有其他PHP会议的选择吗?有其他PHP会议的选择吗?Apr 29, 2025 am 12:36 AM

PHP会话的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。1.Cookies通过在客户端存储数据来管理会话,简单但安全性低。2.Token-basedAuthentication使用令牌验证用户,安全性高但需额外逻辑。3.Database-basedSessions将数据存储在数据库中,扩展性好但可能影响性能。4.Redis/Memcached使用分布式缓存提高性能和扩展性,但需额外配

在PHP的上下文中定义'会话劫持”一词。在PHP的上下文中定义'会话劫持”一词。Apr 29, 2025 am 12:33 AM

Sessionhijacking是指攻击者通过获取用户的sessionID来冒充用户。防范方法包括:1)使用HTTPS加密通信;2)验证sessionID的来源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

PHP的完整形式是什么?PHP的完整形式是什么?Apr 28, 2025 pm 04:58 PM

文章讨论了PHP,详细介绍了其完整形式,在We​​b开发中的主要用途,与Python和Java的比较以及对初学者的学习便利性。

PHP如何处理形式数据?PHP如何处理形式数据?Apr 28, 2025 pm 04:57 PM

PHP使用$ \ _ post和$ \ _获取超级全局的php处理数据,并通过验证,消毒和安全数据库交互确保安全性。

PHP和ASP.NET有什么区别?PHP和ASP.NET有什么区别?Apr 28, 2025 pm 04:56 PM

本文比较了PHP和ASP.NET,重点是它们对大规模Web应用程序,性能差异和安全功能的适用性。两者对于大型项目都是可行的,但是PHP是开源和无关的,而ASP.NET,

PHP是对病例敏感的语言吗?PHP是对病例敏感的语言吗?Apr 28, 2025 pm 04:55 PM

PHP的情况敏感性各不相同:功能不敏感,而变量和类是敏感的。最佳实践包括一致的命名和使用对案例不敏感的功能进行比较。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具