全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  千锋问问

JAVA求最大公约数代码怎么操作

问题描述:JAVA求最大公约数代码怎么操作

推荐答案 本回答由问问达人推荐

  要求解两个数的最大公约数(Greatest Common Divisor, GCD)可以使用不同的方法。下面是使用Java编写的几种常见方法:

千锋教育

  方法一:欧几里得算法(辗转相除法)

  这是一种基于递归的算法,基本原理是使用两个数的余数来替代原来的两个数,直到余数为0时停止。最后一个非零余数就是最大公约数。

  public class GCD {

  public static int gcd(int a, int b) {

  if (b == 0) {

  return a;

  } else {

  return gcd(b, a % b);

  }

  }

  public static void main(String[] args) {

  int a = 24;

  int b = 36;

  int gcd = gcd(a, b);

  System.out.println("最大公约数是: " + gcd);

  }

  }

  方法二:更相减损术

  这个方法是通过不断相减的方式求解最大公约数,直到两个数相等时停止。最后的相等数就是最大公约数。

  public class GCD {

  public static int gcd(int a, int b) {

  while (a != b) {

  if (a > b) {

  a = a - b;

  } else {

  b = b - a;

  }

  }

  return a;

  }

  public static void main(String[] args) {

  int a = 24;

  int b = 36;

  int gcd = gcd(a, b);

  System.out.println("最大公约数是: " + gcd);

  }

  }

  方法三:迭代法

  迭代法是一种更简单直接的方法,基本原理是从较小的数开始,依次递减判断两个数是否都能被整除,直到找到最大公约数为止。

  public class GCD {

  public static int gcd(int a, int b) {

  int gcd = 1;

  for (int i = 1; i <= a && i <= b; i++) {

  if (a % i == 0 && b % i == 0) {

  gcd = i;

  }

  }

  return gcd;

  }

  public static void main(String[] args) {

  int a = 24;

  int b = 36;

  int gcd = gcd(a, b);

  System.out.println("最大公约数是: " + gcd);

  }

  }

  上述代码展示了三种常见的求解最大公约数的方法。请注意,这些方法都是针对整数的,如果你需要处理其他类型(如浮点数或大整数),可能需要另外的方法。希望这可以帮助到你。

查看其它两个剩余回答
在线咨询 免费试学 教程领取