易语言递归法求最大公约数

易语言辗转相除求最大公约数

递归法求最大公约数源码

界面放置三个编辑框,两个用来输入,一个显示最大公约数

.版本 2
 
.子程序 _计算图形按钮_被单击
 
' 判断输入的数值,如果数值不合适就给出提示,合适就调用求最大公约数的子程序
.如果真 (到数值 (数一编辑框.内容) ≤ 0 或 到数值 (数二编辑框.内容) ≤ 0)
    信息框 (“请输入两个正整数”, 0, )
    返回 ()
.如果真结束
.如果真 (数一编辑框.内容 = “” 或 数二编辑框.内容 = “”)
    信息框 (“请输入两个正整数”, 0, )
    返回 ()
.如果真结束
' 输入的数值合适,调用求最大公约数的子程序
.如果 (到数值 (数一编辑框.内容) > 到数值 (数二编辑框.内容))
    较大数 = 到数值 (数一编辑框.内容)
    较小数 = 到数值 (数二编辑框.内容)
.否则
    较大数 = 到数值 (数二编辑框.内容)
    较小数 = 到数值 (数一编辑框.内容)
.如果结束
.如果 (较大数 < 99999999)  ' 判断输入的较大数的范围
    辗转相除 ()
.否则
    信息框 (“较大数的数值过大!应小于99999999!”, 0, )
.如果结束
 
 
.子程序 辗转相除, , , 求最大公约数的子程序
.局部变量 余数, 整数型
 
.如果 (较大数 % 较小数 = 0)
    结果编辑框.内容 = 到文本 (较小数)  ' 找到就显示
.否则
    余数 = 较大数 % 较小数
    较大数 = 较小数
    较小数 = 余数
    辗转相除 ()  ' 递归调用,继续找

发布日期:

所属分类: 易语言 标签: