基础Java:寻找最大的共同因素

用户名

我需要创建一个程序,使用以下公式查找两个用户输入的数字的最大公因数:

如果x> = y,则gcd(x,y)= gcd(x – y,y);如果x <y,则gcd(x,y)= gcd(x,yx)。

例如:gcd(72,54)= gcd(72 – 54,54)= gcd(18,54)由于72> 54,我们将72替换为72 – 54 = 18,并使用新值继续循环

迭代2:gcd(18,54)= gcd(18,54 – 18)= gcd(18,36)由于18 <54,我们将54替换为54 – 18 = 36,并使用新值继续循环

迭代3:gcd(18,36)= gcd(18,36 – 18)= gcd(18,18)由于18 <36,我们将36替换为36 – 18 = 18,并使用新值继续循环

迭代4:gcd(18,18)= gcd(18 – 18,18)= gcd(0,18)= 18由于18> = 18,我们将第一个18替换为18 – 18 = 0,因为其中一个值是0,我们不继续循环。非零值18是gcd。

这是我到目前为止的代码:

在此处输入图片说明

我收到错误消息“表达式的非法开头”。

大家好

首先,在您的逻辑中:

do {
   int gcd1 = (num1-num2);
   System.out.println(gcd1 + "," + num2);

   }
   while (num1 != 0 && num2 != 0);
   return
}

您只是在不更新num1和num2的情况下打印出gcd1和num2。

还要考虑如何使用递归来解决此问题。

如果您坚持使用循环,则为while循环逻辑:

public static int greatestCommon(int a, int b)
        {
            while (a != 0 && b != 0)
            {
                if (a >= b)
                {
                    a = a - b;
                }
                else
                    b = b - a;
            }
            if (a == 0) return b;
            else return a;
        }

请注意,您不需要使用do-while循环,因为在某些情况下不需要减法(如果它们之一或两者均为0)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

寻找共同的朋友sql

来自分类Dev

与R共同的因素得分数

来自分类Dev

需要帮助寻找共同的价值观

来自分类Dev

在View中寻找共同的价值观

来自分类Dev

Spark-寻找重叠的价值,或者寻找共同的朋友

来自分类Dev

2个数字的共同因素是什么?

来自分类Dev

寻找最大折扣的长度

来自分类Dev

背包寻找最大

来自分类Dev

寻找最大的幸福

来自分类Dev

寻找一些主要因素

来自分类Dev

寻找两个以上分支的共同祖先

来自分类Dev

寻找共同的类集合中的所有对象

来自分类Dev

寻找两个以上分支的共同祖先

来自分类Dev

寻找最大的双子星

来自分类Dev

寻找最大可能的总和

来自分类Dev

寻找数组的最大值

来自分类Dev

寻找未知维度的二维数组的最大高度和宽度 (Java)

来自分类Dev

在数组中寻找最大值;在 Java 中使用四个线程

来自分类Dev

最大宽度的基础显露模态

来自分类Dev

最大宽度的基础显露模态

来自分类Dev

Java根据什么基础找到String数组的最大值和最小值?

来自分类Dev

OpenBSD:在基础系统中哪里寻找程序源?

来自分类Dev

寻找1周最大输家

来自分类Dev

寻找最大素因数的正确算法

来自分类Dev

寻找最大排序的子序列

来自分类Dev

寻找最大乘积的算法方法

来自分类Dev

范围超集-寻找最大距离

来自分类Dev

寻找最大的除数(可能最快的程序)

来自分类Dev

寻找最大的交替数字总和(python 3)