[英]Variable won't increment. - Greatest Common Divisor in java
我的任务是接受 2 个分数并将它们相加,然后以最简单的形式返回。
出于某种原因,“gcd = i;”行执行时不运行,因此我的程序在运行时进入无限循环。
import java.util.*;
class fraction {
public static void main(String[] args) {
int num1, den1, num2, den2;
Scanner sc = new Scanner(System.in);
/* System.out.print("Enter first numerator:");
num1 = sc.nextInt();
System.out.print("Enter first denominator:");
den1 = sc.nextInt();
System.out.print("Enter second numerator:");
num2 = sc.nextInt();
System.out.print("Enter second denominator:");
den2 = sc.nextInt(); */
num1 = 1;
den1 = 2;
num2 = 1;
den2 = 2;
System.out.print(num1 + "/" + den1 + " + " + num2 + "/" + den2 + " is equal to ");
int num = num1 * den2 + den1 * num2;
int dum = den1 + den2;
System.out.println(num + "/" + dum);
System.out.println(num % dum);
int gcd = 2;
while (num % dum == 0) {
for (int i = 1; i < num && i < dum; ++i) {
if (num % i == 0 && dum % i == 0) {
gcd = i;//This line.
System.out.println(gcd + " " + i);
}
}
num = num / gcd;
dum = dum / gcd;
}
System.out.println(num + "/" + dum);
}
}
你总是输入 gcd = i;
问题是在声明的结尾你有
num1 1
den1 2
num2 1
den2 2
num 2
dum 2
gcd 1
所以num = num/gcd
返回 2 并且dum = dum/gcd
= 2。所以你不能 go 退出 while 循环
也许你可以在 for 循环中解决 for (i =2...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.