21xrx.com
2024-12-23 06:29:42 Monday
登录
文章检索 我的文章 写文章
Java求最小值、最大公约数的方法
2023-06-11 04:04:23 深夜i     --     --

作为一名Java程序员,求最小值、最大公约数是我们经常需要用到的操作。下面我将分享两种求最小值和最大公约数的方法。

求最小值:

1. 遍历比较法

通过遍历数组找到最小值,代码如下:


public static int findMin(int[] arr){

  int min = arr[0];

  for(int i=1; i

    if(arr[i] < min){

      min = arr[i];

    }

  }

  return min;

}

2. 排序法

先将数组排序,取出数组的第一个元素即是最小值,代码如下:


public static int findMin(int[] arr){

  Arrays.sort(arr);

  return arr[0];

}

求最大公约数:

1. 辗转相除法

辗转相除法又称为欧几里德算法,可以求两个正整数的最大公约数。我们先将其中一个数除以另一个数,得到余数,再用较小的数除以余数,接着用新的余数再除以原余数,以此类推,直至余数为0为止。最后的除数即为两个数的最大公约数。代码如下:


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

  if(b == 0)

    return a;

  

  return gcd(b, a%b);

}

2. 穷举法

穷举法又称为枚举法,可以求两个正整数的最大公约数,但效率较低,不适用于大数据。代码如下:


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

  int min = Math.min(a, b);

  for(int i=min; i>=1; i--){

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

      return i;

    

  }

  return 1;

}

以上就是我分享的Java求最小值、最大公约数的方法。不同的方法适用于不同的场景,根据实际需求灵活选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复