首頁 > 後端開發 > C++ > 使用遞歸編寫的C++程序,用於計算兩個數的乘積

使用遞歸編寫的C++程序,用於計算兩個數的乘積

王林
發布: 2023-08-28 11:01:11
轉載
1669 人瀏覽過

使用遞歸編寫的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,則 < B,则
      • 傳回乘法( B, A )
    • 否則當B不為0時,則
      • 傳回 A 乘法( A, B - 1 )
    • 否則
      • 返回0
    • 如果結束
  • 函數定義結束
  • 讀取兩個輸入 A 和 B
  • res = 乘法( A, B )
  • 不顯示任何內容

範例

#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中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板