Java - 初学者代码,添加分数

标签 java for-loop if-statement while-loop do-while

下周我有一个学校项目要交,我正试图找到解决这个问题的方法。 问题是开发一个程序,将用户输入的分数相加,直到他键入 -1。

  • 输入总是成对的正数。
  • 只能使用:int、for、while、if、scanner(所以不能中断或数组)
  • 最好使用 GCD,因为它需要打印 减少分数和

所以我的问题是:

  • 我可以使用 while 循环直到用户使用扫描器输入 -1 吗?
  • 是否可以使用“while”让用户键入“无限”(我知道在 java 中没有这样的)数字直到终止?
  • 在上一个问题的代码中我写了公因数 方程式,我如何写出未知数量的公因数 变量

编辑: 这是我的代码,问题是,它只运行 4*n 个数字,我需要它能够运行 2*n 个数字:(比如 2/4 或 2/4+1/3+1/2)

Scanner myScanner=new Scanner(System.in);
        int a;
        int b;
        int c;
        int d;
        int m = a*d + b*c;
        int n = b*d;
        int r = m%n;

        while((a = myScanner.nextInt()) != -1)
        {
            b = myScanner.nextInt();
            c = myScanner.nextInt();
            d = myScanner.nextInt(); 
            while (r != 0) {
                m=n;
                n=r; 
                r = m%n;
            }
            m = (a*d + b*c)/n;
            n = (b*d)/n;

            System.out.println(m);
            System.out.println(n);

        }

}

最佳答案

A.

可以继续读取来自扫描仪的输入,直到定义的消息(在本例中为数字对,直到输入 -1)

Scanner scanner = new Scanner(System.in);
int num1;
int num2;

while((num1 = scanner.nextInt()) != -1)
{
    num2 = scanner.nextInt();
    //do stuff with num1 and num2
}

B.

A. 的全部意义在于允许来自用户的可变输入量,因此除非您有硬性限制的理由,否则理论上它应该接受无限输入


C.

与其在获得任何数字之前尝试计算公因数,不如在获得数字时更容易计算公因数

int newNumerator = numerator1 * denominator2 + numerator2 * denominator1;
int newDenominator = denominator1 * denominator2;

跟踪当前的分子和分母,在获得更多对时进行更新

然后可以将 A. 应用于它以实现无限输入

Scanner scanner = new Scanner(System.in);
int numerator = 0;
int denominator = 0;
int tempNumer = 0;
int tempDenom = 0;

if((numerator = scanner.nextInt()) != -1)
{
    denominator = scanner.nextInt();
    while((tempNumer = scanner.nextInt()) != -1)
    {
        tempDenom = scanner.nextInt();
        numerator = numerator * tempDenom + tempNumer * denominator;
        denominator = denominator * tempDenom;
    }
}

关于Java - 初学者代码,添加分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47059021/

相关文章:

c++ - 为什么我的数组的最后一行填满了随机数?

linux - for循环在shell脚本中不起作用

java - Java 中 if/else 循环中的变量问题

java - 不断更新textView

java - 查找 Android 应用程序源代码中使用的 API 总数?

javascript - 将数组值推送到对象值

c - 点钞机C程序

c - IF语句覆盖C中的FOR循环

java - 未找到 Web 服务器 AngularJs GET 404

java - 在同一 JPanel 框架上添加多个多边形对象