Java 代码实现最大公约数 (GCD) 算法并绘制程序控制流图
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;
}
}
程序控制流图
该程序的控制流图可以用以下步骤描述:
- 开始
- 输入参数 x 和 y
- 判断 x 是否小于 1 或大于 100,如果是,输出'参数不正确!'并返回 -1,否则继续执行下一步
- 判断 y 是否小于 1 或大于 100,如果是,输出'参数不正确!'并返回 -1,否则继续执行下一步
- 定义变量 max、min、result,分别为 x、y 中的较大值、较小值和最大公约数,初始值为 1
- 判断 x 是否大于等于 y,如果是,将 x 赋值给 max,y 赋值给 min,否则将 y 赋值给 max,x 赋值给 min
- 进入循环,循环变量 n 初始值为 1,每次循环加 1,直到 n 大于 min 为止
- 判断 min 是否能被 n 整除且 max 是否能被 n 整除,如果是,将 n 与 result 比较,如果 n 大于 result,则将 n 赋值给 result
- 循环结束,输出'最大公约数为:result',并返回 result
- 结束
代码说明
- 代码首先判断输入参数 x 和 y 是否在 1 到 100 之间,如果不在则输出错误信息并返回 -1。
- 然后定义三个变量:max、min 和 result,分别用来存储 x 和 y 中的较大值、较小值和最大公约数。
- 接着使用循环遍历从 1 到 min 的所有整数,判断每个整数 n 是否能同时整除 max 和 min,如果可以,则更新 result 为 n。
- 最后,代码输出最大公约数并返回 result。
总结
本文通过 Java 代码实现最大公约数 (GCD) 算法,并提供详细的程序控制流图解释。代码示例展示了如何判断输入参数的有效性,并使用循环迭代找出两个整数的最大公约数。
希望本文对您理解 GCD 算法有所帮助。
原文地址: https://www.cveoy.top/t/topic/lQxw 著作权归作者所有。请勿转载和采集!