使用遞迴查詢兩個數字的乘積的 C++ 程式
遞迴是一種技術,我們可以在其中從同一個函式本身呼叫函式。必須有一些基本或終止條件來結束遞迴呼叫。遞迴過程非常有助於使用更少的程式碼執行復雜的迭代解決方案,並透過子操作查詢更容易地解決問題。
在本文中,我們將討論一種遞迴方法來在 C++ 中執行兩個數字之間的乘積(乘法)。最初,我們將瞭解基本原理、遞迴函式呼叫的語法、演算法和原始碼。
使用遞迴進行乘法
在高階語言中,可以使用乘法運算子直接執行乘法。但是我們知道乘法實際上是重複加法。因此,A * B 的結果是 A 的重複加法,B 次,或者我們可以說 B 的重複加法,A 次。只要有重複,我們就可以使用遞迴來做到這一點。讓我們首先看看遞迴函式定義語法。
語法
<return type> function_name ( parameter list ) {
if ( base condition ) {
terminate recursive call
}
recursive function call: function_name ( updated parameter list )
}
演算法
讓我們看看使用遞迴執行乘法的演算法。
- 定義一個函式 multiply(),它接受兩個數字 A 和 B
- 如果 A < B,則
- 返回 multiply( B, A )
- 否則,當 B 不為 0 時,則
- 返回 A + multiply( A, B - 1 )
- 否則
- 返回 0
- 結束 if
- 如果 A < B,則
- 函式定義結束
- 讀取兩個輸入 A 和 B
- res = multiply( A, B )
- 顯示 res
示例
#include <iostream> #include <sstream> using namespace std; int multiply( int A, int B) { if( A < B ) { return multiply( B, A ); } else if( B != 0 ) { return A + multiply( A, B - 1 ); } else { return 0; } } int main() { cout << "Multiplication of 5, 7 is: " << multiply( 5, 7 ) << endl; cout << "Multiplication of 8, 0 is: " << multiply( 8, 0 ) << endl; cout << "Multiplication of 25, 3 is: " << multiply( 25, 3 ) << endl; cout << "Multiplication of 9, 1 is: " << multiply( 9, 1 ) << endl; }
輸出
Multiplication of 5, 7 is: 35 Multiplication of 8, 0 is: 0 Multiplication of 25, 3 is: 75 Multiplication of 9, 1 is: 9
看,在這個程式中,函式正在獲取引數 A 和 B,它們都是兩個整數。現在,在每一步之後,它都會將第二個引數 B 減少 1,並將 A 與自身相加。像這樣,函式正在執行乘法過程。
結論
遞迴是從函式本身呼叫同一個函式的過程。在遞迴呼叫函式時,我們稍微更新或更改引數集,以便相同的效應不會一遍又一遍地出現,然後它將問題分解成更小的子問題,並透過自下而上的方式解決這些更小的問題來解決問題。幾乎所有可以使用迴圈實現的東西,也可以使用遞迴來實現。在本文中,我們看到了使用遞迴將兩個整數相乘的簡單過程。這些整數被多次相加以獲得最終的乘法結果。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP