递归函数有三点要求:
1,递归的终止点,即递归函数的出口
2,不断的递归调用自身
3,递归函数主体内容,即递归函数需要做的事情
ps:3一般可以放在2的前面或者后面,一般1放最前面。另外,2和3可以根据不同的需要合并,比如,有时候递归函数的主体就是返回调用下层函数所得到的结果。
具体例子如下:
void fun(int n){
if(n<=0) return; //1 这是递归的终点,即出口
fun(n-1); //2、递归函数自身的调用
cout<<n<<endl; //3 递归函数的主体内容
}
2,3合并的情况
int fun(int n){
if(n<=0) return 0;
return fun(n-1)+fun(n-2); //2 3合并
}
递归,简单说是子程序自己调用自己。
例子:
版本 2
子程序 左右查找
参数 左边值, 整数型
参数 右边值, 整数型
参数 查找数组, , 数组
参数 ww, , 参考 可空 数组
局部变量 i, 整数型
局部变量 j, 整数型
局部变量 中间值, 整数型
如果真 (左边值 ≥ 右边值)
返回 ()
如果真结束
i = 左边值
j = 右边值
判断循环首 (j ≠ i)
判断循环首 (查找数组 [左边值] ≤ 查找数组 [j] 且 i < j)
j = j - 1
判断循环尾 ()
判断循环首 (查找数组 [左边值] ≥ 查找数组 [i] 且 i < j)
i = i + 1
判断循环尾 ()
如果真 (i < j)
中间值 = 查找数组 [j]
查找数组 [j] = 查找数组 [i]
查找数组 [i] = 中间值
如果真结束
判断循环尾 ()
中间值 = 查找数组 [左边值]
查找数组 [左边值] = 查找数组 [i]
查找数组 [i] = 中间值
左右查找 (左边值, i - 1, 查找数组, ) ' 继续处理左边的,这里是个递归的过程
左右查找 (i + 1, 右边值, 查找数组, ) ' 继续处理右边的,这里是个递归的过程
ww = 查找数组
' 以上是快速排序的代码实现,核心所在是递归的过程。
以上就是关于vb编写程序,利用Sub子程序递归调用方式计算两个数M、N的最大公约数,其中M>N,且N≠0。程序全部的内容,包括:vb编写程序,利用Sub子程序递归调用方式计算两个数M、N的最大公约数,其中M>N,且N≠0。程序、递归的定义是什么、vfp中的子程序递归调用问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)