首页 > 后端开发 > C++ > 正文

使用递归编写的C++程序,用于计算两个数的乘积

王林
发布: 2023-08-28 11:01:11
转载
1635 人浏览过

使用递归编写的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
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!