vb编写程序,利用Sub子程序递归调用方式计算两个数M、N的最大公约数,其中M>N,且N≠0。程序

vb编写程序,利用Sub子程序递归调用方式计算两个数M、N的最大公约数,其中M>N,且N≠0。程序,第1张

递归函数有三点要求:

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中的子程序递归调用问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9503250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存