当前位置: 首页 > 面试题库 >

Java:获得最大公约数

王宏深
2023-03-14
问题内容

我已经看到存在这样的功能BigInteger,即BigInteger#gcd。是否有在Java中的其它功能也适用于其他类型的工作(intlongInteger)?似乎这是有意义的java.lang.Math.gcd(带有各种重载),但是它不存在。在别的地方吗?

(请不要将此问题与“我如何自己实现”混淆!)


问题答案:

对于int和long而言,作为原语,并非如此。对于Integer,有人可能写了一个。

假设BigInteger是int,Integer,long和Long的(数学/函数)超集,如果您需要使用这些类型,请将它们转换为BigInteger,执行GCD,然后将结果转换回。

private static int gcdThing(int a, int b) {
    BigInteger b1 = BigInteger.valueOf(a);
    BigInteger b2 = BigInteger.valueOf(b);
    BigInteger gcd = b1.gcd(b2);
    return gcd.intValue();
}


 类似资料:
  • 我是新来这个网站的,希望在这里玩得开心。我现在正在做一个作业,现在我被困在第一个问题上,程序要求两个整数来计算和显示最大公约数(GCD)。 根据问题: 计算GCD的经典算法,称为欧几里德算法,如下所示:设m和n为包含这两个数字的变量。如果n为0,则停止;m包含GCD。否则,当m除以n时,计算余数。将n复制到m中,并将余数复制到n中。然后重复该过程,从测试n是否为0开始。 有了这个提示,我决定按如下

  • 我试图让这个程序计算两个用户输入的正整数(x和y)的最大公约数(GCD)。set函数不返回可以索引的列表。关于如何找到GCD有什么建议吗?

  • 计算两个或两个以上数字/数字数组的最大公约数。 内部的 _gcd 函数使用递归。基本情况是,当 y 等于 0 的情况下,返回 x 。否则,返回 y 的最大公约数和x / y的其余数。 const gcd = (...arr) => { const _gcd = (x, y) => (!y ? x : gcd(y, x % y)); return [...arr].reduce((a, b)

  • Python3 实例 以下代码用于实现最大公约数算法: 实例(Python 3.0+)# Filename : test.py # author by : www.runoob.com # 定义一个函数 def hcf(x, y): """该函数返回两个数的最大公约数""" # 获取最小值 if x > y: smaller = y else: smaller = x for i in range

  • 本文向大家介绍java求最大公约数与最小公倍数的方法示例,包括了java求最大公约数与最小公倍数的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java求最大公约数与最小公倍数的方法。分享给大家供大家参考,具体如下: Gongyueshu.java文件: 此处需要由控制台输入参数,eclipse环境运行的设置步骤为Run》Run Configurations进入运行的调试配置界面

  • 我正在做一些自学的Java,但似乎无法解决这个循环中的问题: 问题是找到两个整数n1和n2的最大公约数,其中d是较小的值。方法是递减d直到GCD或它达到1。。。以下是我目前的情况: 有什么指示吗?