第二個println
語句的邏輯錯誤導致我的代碼在下面的無限循環。找不到GCD方法的邏輯
它的內部while循環,我明白,導致它保持打印,因爲while測試是真實的。分別使用48和18作爲num1和num2,我得到了GCD的正確答案是6.打印輸出語句的位置是錯誤的,我不知道該把它放在哪裏。
只要不是負數,我的代碼就可以找到兩個整數的GCD。我用歐幾里德的方法。
感謝您的幫助!
import java.util.*;
public class Chapter5Lab_Problem1 {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Type the first integer to find GCD");
int num1 = console.nextInt();
System.out.print("Type the second integer to find GCD ");
int num2 = console.nextInt();
gcd(num1,num2);
}
public static void gcd(int x, int y){
while(x >= 0 && y >= 0){
if(x == 0){
System.out.println("The GCD is " + y);
}
while(y != 0){
if(x > y){
x = x - y;
}else{
y = y - x;
}
}
System.out.println("The GCF is " + x);
}
}
}
你爲什麼連續減去,而不是獲得國防部。 – thang
不知道如何正確使用它。你能告訴我你將如何改變使用模數的方法嗎? – foodnliquor