当前位置: 首页 > 知识库问答 >
问题:

最伟大的公约数程序只打印1

乌俊健
2023-03-14

我在做一个程序,你输入两个整数,程序找到这两个数之间的最大公约数。

它运行良好,除了它打印“1”作为GCD,即使这两个数字应该有不同的GCD。(例子: 4

对于那些想用一种方法来回答问题的人,我做不到:这是一项要求我在同一个程序中使用两种不同方法的作业。请帮忙?

谢谢你的阅读,祝你一周愉快。

这是我的代码:

import java.util.Scanner;

public class greatestCommonDivisorMethod {

    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);

        //Number entry prompts       
        System.out.print("Please enter first integer: ");
        int num1 = input.nextInt();
        System.out.print("Please enter second integer: ");
        int num2 = input.nextInt();

        //Result printed
        System.out.println("The greatest common divisor of " +num1+ " and " +num2+ " is " +gcd(num1, num2)+".");
    }


    public static int gcd(int num1, int num2) {
        int gcd = 1;
        int k = 2;
        while (num1 <= k && k <= num2) 
        {
             if (num1 % k == 0 && num2 % k == 0)
                 gcd = k;
                 k++;  
        }

        return gcd;
    }
} 

共有3个答案

衡高寒
2023-03-14

将返回值指定给一个变量,然后打印它

int answer = gcd(num1, num2);

然后在打印时使用转换字符串或toString方法。

 System.out.println("The greatest common divisor of " +answer.toString());
郎雅昶
2023-03-14

while条件可能有k

公冶子安
2023-03-14
while (num1 <= k && k <= num2) 
{
      if (num1 % k == 0 && num2 % k == 0)
      gcd = k;
      k++;  
}

看起来你在while循环中意外地切换了num1k

 类似资料:
  • 我试图让这个程序计算两个用户输入的正整数(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)

  • 问题内容: 我已经看到存在这样的功能,即。是否有在Java中的其它功能也适用于其他类型的工作(,或)?似乎这是有意义的(带有各种重载),但是它不存在。在别的地方吗? (请不要将此问题与“我如何自己实现”混淆!) 问题答案: 对于int和long而言,作为原语,并非如此。对于Integer,有人可能写了一个。 假设BigInteger是int,Integer,long和Long的(数学/函数)超集,

  • 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

  • longestCommonSubsequence正在返回LCS的长度。代码运行良好。但我试图打印子序列的值。例如,它应该打印“acef”。但我的代码只打印“ae”<如何修复? 这是完整的代码https://pastebin.com/Sq4QMtxF

  • 本文向大家介绍PHP编程求最大公约数与最小公倍数的方法示例,包括了PHP编程求最大公约数与最小公倍数的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP编程求最大公约数与最小公倍数的方法。分享给大家供大家参考,具体如下: PS:这里再为大家推荐几款在线计算工具供大家参考使用: 在线一元函数(方程)求解计算工具: http://tools.jb51.net/jisuanqi/eq