在開始學習 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
等等..
現在我們如何實際找到階乘,我們可以使用
- for 迴圈(無遞迴)
- 使用遞迴
階乘邏輯
取得數字階乘的邏輯如下。
- 取得要計算階乘的數。
- 取得所有從 1 到該數字的數字。
- 計算所有數字的乘積。
記住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 ?>
輸出:
範例#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; } ?>
輸出:
範例 #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; ?>
輸出 :
範例#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); ?>
輸出:
範例#5
我們現在已經了解遞歸了。在下面的程式中,我們使用了遞歸,遞歸應用於本範例中使用者輸入的數字。
代碼:
<title> Factorial Program</title>'. 'The factorial of the number '.$input.' is ' . Factorial_Function($input); } ?>
輸出:
結論
本文涵蓋了所有使用 PHP 求數位階乘的解釋和範例。使用遞歸和非遞歸方式解釋範例,並結合程式上下文進行遞歸解釋。希望這篇文章能為您提供有益的學習與掌握。
以上是PHP 中的階乘的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在PHP中,可以使用session_status()或session_id()來檢查會話是否已啟動。 1)使用session_status()函數,如果返回PHP_SESSION_ACTIVE,則會話已啟動。 2)使用session_id()函數,如果返回非空字符串,則會話已啟動。這兩種方法都能有效地檢查會話狀態,選擇使用哪種方法取決於PHP版本和個人偏好。

sessionsarevitalinwebapplications,尤其是在commercePlatform之前。

在PHP中管理並發會話訪問可以通過以下方法:1.使用數據庫存儲會話數據,2.採用Redis或Memcached,3.實施會話鎖定策略。這些方法有助於確保數據一致性和提高並發性能。

PHPsessionshaveseverallimitations:1)Storageconstraintscanleadtoperformanceissues;2)Securityvulnerabilitieslikesessionfixationattacksexist;3)Scalabilityischallengingduetoserver-specificstorage;4)Sessionexpirationmanagementcanbeproblematic;5)Datapersis

負載均衡會影響會話管理,但可以通過會話複製、會話粘性和集中式會話存儲解決。 1.會話複製在服務器間複製會話數據。 2.會話粘性將用戶請求定向到同一服務器。 3.集中式會話存儲使用獨立服務器如Redis存儲會話數據,確保數據共享。

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

PHP會話的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。 1.Cookies通過在客戶端存儲數據來管理會話,簡單但安全性低。 2.Token-basedAuthentication使用令牌驗證用戶,安全性高但需額外邏輯。 3.Database-basedSessions將數據存儲在數據庫中,擴展性好但可能影響性能。 4.Redis/Memcached使用分佈式緩存提高性能和擴展性,但需額外配

Sessionhijacking是指攻擊者通過獲取用戶的sessionID來冒充用戶。防範方法包括:1)使用HTTPS加密通信;2)驗證sessionID的來源;3)使用安全的sessionID生成算法;4)定期更新sessionID。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版
中文版,非常好用

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),