遞歸是一種從同一個函數本身呼叫函數的技術。必須有一些基本或終止條件來結束遞歸呼叫。遞歸過程對於用更少的程式碼執行複雜的迭代求解非常有幫助,並且透過子操作尋找更容易的求解方法。
在本文中,我們將討論在 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 ) }
讓我們來看看使用遞歸執行乘法的演算法。
#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 與 A 本身相加。像這樣,函數正在執行乘法過程。
遞歸是從函數本身呼叫相同函數的過程。當遞歸呼叫函數時,我們稍微更新或改變參數集,以免同樣的效果一次又一次出現,然後將問題劃分為更小的子問題,並透過自下而上的方式解決這些較小的問題來解決問題。幾乎任何可以使用循環實現的東西也可以使用遞歸實現。在本文中,我們看到了使用遞歸將兩個整數相乘的簡單過程。整數多次相加,得到最終的乘法結果。
以上是使用遞歸編寫的C++程序,用於計算兩個數的乘積的詳細內容。更多資訊請關注PHP中文網其他相關文章!