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

Java-初学者代码,添加分数,java,for-loop,if-statement,while-loop,do-while,Java,For Loop,If Statement,While Loop,Do While,下周我有一个学校项目要交,我正在设法解决这个问题。 问题是开发一个程序,将用户输入的分数相加,直到他键入-1 输入将始终是成对的正数 必须仅使用:int、for、while、if、scanner(因此无中断或数组) 最好使用GCD,因为需要在 分数的约化和 所以我的问题是: 我可以使用while循环直到用户使用扫描仪键入-1吗 使用“while”让用户输入“infinite”(我知道java中没有这样的)数字直到终止是否可以 在上一个问题的代码中,我为 这个等式,我如何写出一个未知数的公共

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

  • 输入将始终是成对的正数
  • 必须仅使用:int、for、while、if、scanner(因此无中断或数组)
  • 最好使用GCD,因为需要在 分数的约化和
所以我的问题是:

  • 我可以使用while循环直到用户使用扫描仪键入-1吗
  • 使用“while”让用户输入“infinite”(我知道java中没有这样的)数字直到终止是否可以
  • 在上一个问题的代码中,我为 这个等式,我如何写出一个未知数的公共因子 变数
编辑: 这是我的代码,问题是,它只运行4*n个数字,我需要它能够运行2*n个数字:(如2/4或2/4+1/3+1/2)

A. 可以一直从扫描仪读取输入,直到输入定义的消息为止(在这种情况下,直到输入
-1
为止,都是成对的数字)


B 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;
    }
}

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;
    }
}

您错过了int userInput=0;当(userInput!=-1){/*do stuff*/userInput=myScanner.nextInt();}要计算F1+F2+F3时,您可以从计算F1+F2开始,存储结果(我们将其命名为fcCurrent),然后计算fcCurrent+F3。所以你总是加两个分数,而不是无穷多。如果需要添加F4,则可以将Fcurrent+F3的结果再次存储在Fcurrent中,然后计算Fcurrent+F4。如何输入公因数int m=ad+bc;int n=b*d;如果数字在一个循环中,并且只有一个分数?这里的解决方案是4numbers@Shira用A部分和C部分组合的示例编辑谢谢!我输入了gcd,得到了分数,但是现在它只允许我输入2对数字(4个数字,8个数字等等)。我可以做什么让用户键入一对?(2个数字,6个数字)@Shira您的输入/输出是什么?如果有6个数字(或任意2*n而不是4*n),则没有输出。它要求我添加更多的数字
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;
    }
}