欧几里得算法得出错误结论

时间:2019-07-27 12:59:15

标签: java if-statement while-loop

我的作业是在Java中创建Euclid算法。该任务使我同时使用while循环和if语句。此外-如果必须将语句放置在while循环内。

在执行此任务期间,我已经遇到了无限循环问题,因此设法通过了它。现在我的Euclid算法给出了多个答案(而不是一个),而且它们是错误的...

我在这里搜索了几个主题,但是那里没有显示出答案。我试图重写整个代码,以及while循环和if语句的不同条件。

import java.lang.*;

class EuklidesAlgorithm {
    public static void main (String[] args) throws java.lang.Exception{
        int a = 25648;
        int b = 15468;

        while (a % b != 0 ){
            int modulo = a % b;
            if (modulo == 0){
                break;
            }else {
                modulo = a % b;
                System.out.println(" Checking for GCD");
                a = b;
                b = modulo;
            }
            System.out.println(" Number " + b + " is GDC of numbers(" + a + "," + b + ").");
        }
    }
}

我希望给出一个答案,a和b的GCD是什么。

1 个答案:

答案 0 :(得分:1)

首先,条件:

modulo==0 

在循环内总是错误的... 而且您不必在循环内更改可变价格,也不必在每个循环中打印答案,因此... if语句很可能用于检查这两个数字中的任何一个是否为0或结果是否为0,但是您可以同时执行这两个操作