Java 代码实现最大公约数 (GCD) 算法

public class getGCD {
    public int getGCD(int x, int y) {
        if (x < 1 || x > 100) {
            System.out.println('参数不正确!');
            return -1;
        }
        if (y < 1 || y > 100) {
            System.out.println('参数不正确!');
            return -1;
        }
        int max, min, result = 1;
        if (x >= y) {
            max = x;
            min = y;
        } else {
            max = y;
            min = x;
        }
        for (int n = 1; n <= min; n++) {
            if (min % n == 0 && max % n == 0) {
                if (n > result)
                    result = n;
            }
        }
        System.out.println('最大公约数为 :' + result);
        return result;
    }
}

程序控制流图

该程序的控制流图可以用以下步骤描述:

  1. 开始
  2. 输入参数 x 和 y
  3. 判断 x 是否小于 1 或大于 100,如果是,输出'参数不正确!'并返回 -1,否则继续执行下一步
  4. 判断 y 是否小于 1 或大于 100,如果是,输出'参数不正确!'并返回 -1,否则继续执行下一步
  5. 定义变量 max、min、result,分别为 x、y 中的较大值、较小值和最大公约数,初始值为 1
  6. 判断 x 是否大于等于 y,如果是,将 x 赋值给 max,y 赋值给 min,否则将 y 赋值给 max,x 赋值给 min
  7. 进入循环,循环变量 n 初始值为 1,每次循环加 1,直到 n 大于 min 为止
  8. 判断 min 是否能被 n 整除且 max 是否能被 n 整除,如果是,将 n 与 result 比较,如果 n 大于 result,则将 n 赋值给 result
  9. 循环结束,输出'最大公约数为:result',并返回 result
  10. 结束

代码说明

  • 代码首先判断输入参数 x 和 y 是否在 1 到 100 之间,如果不在则输出错误信息并返回 -1。
  • 然后定义三个变量:max、min 和 result,分别用来存储 x 和 y 中的较大值、较小值和最大公约数。
  • 接着使用循环遍历从 1 到 min 的所有整数,判断每个整数 n 是否能同时整除 max 和 min,如果可以,则更新 result 为 n。
  • 最后,代码输出最大公约数并返回 result。

总结

本文通过 Java 代码实现最大公约数 (GCD) 算法,并提供详细的程序控制流图解释。代码示例展示了如何判断输入参数的有效性,并使用循环迭代找出两个整数的最大公约数。

希望本文对您理解 GCD 算法有所帮助。

Java 代码实现最大公约数 (GCD) 算法并绘制程序控制流图

原文地址: https://www.cveoy.top/t/topic/lQxw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录