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

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

王林
王林轉載
2023-08-28 11:01:111636瀏覽

使用遞歸編寫的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, 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刪除