递归是一种从同一个函数本身调用函数的技术。必须有一些基本或终止条件来结束递归调用。递归过程对于用更少的代码执行复杂的迭代求解非常有帮助,并且通过子操作查找更容易的求解方法。
在本文中,我们将讨论在 C++ 中执行两个数字之间的乘积(乘法)的递归方法。首先我们了解基本原理、递归函数调用语法、算法和源码。
使用递归的乘法
在高级语言中,有乘法运算符可以直接执行乘法。然而我们知道,乘法实际上是重复的加法。所以A*B的结果就是A、B的重复相加次数,或者可以说B、A的重复相加次数。每当有重复时,我们可以使用递归来做到这一点。让我们先看看递归函数定义语法。
语法
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
- 如果结束
示例
#include
#include
using namespace std;
int multiply( int A, int B) {
if( A