递归是一种从同一个函数本身调用函数的技术。必须有一些基本或终止条件来结束递归调用。递归过程对于用更少的代码执行复杂的迭代求解非常有帮助,并且通过子操作查找更容易的求解方法。
在本文中,我们将讨论在 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, a )否则当b不为0时,则返回 a + 乘法( a, b - 1 )否则返回0如果结束函数定义结束读取两个输入 a 和 bres = 乘法( 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: 35multiplication of 8, 0 is: 0multiplication of 25, 3 is: 75multiplication of 9, 1 is: 9
看,在这个程序中,函数的参数 a 和 b 都是两个整数。现在,在每一步之后,它都会将第二个参数 b 减 1,并将 a 与 a 本身相加。像这样,该函数正在执行乘法过程。
结论递归是从函数本身调用同一函数的过程。递归调用函数时,我们稍微更新或改变参数集,以免同样的效果一次又一次出现,然后将问题划分为更小的子问题,并通过自下而上的方式解决这些更小的问题来解决问题。几乎任何可以使用循环实现的东西也可以使用递归实现。在本文中,我们看到了使用递归将两个整数相乘的简单过程。将整数多次相加,得到最终的乘法结果。
以上就是使用递归编写的c++程序,用于计算两个数的乘积的详细内容。
