确定输出中的最大值

时间:2016-03-10 08:23:18

标签: java

我是Java的初学者,我在网上找到了根据Collat​​z Sequence逻辑运行的练习。它根据输入的起始编号显示正确的输出。它还显示了该过程中的步骤数。

但是,练习的最后一部分要求确定输出中的最大值。

我不确定如何使用我目前的Java初学者知识(我只学习和练习直到while和while while循环 - 几周前开始)。到目前为止,这是我的代码,我一直在努力。 :D我想完成这个并学习如何确定最大值。谢谢! Collatz Sequence Exercise

import java.util.Scanner;

public class CollatzSequence {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);

        int number, steps = 0;

        System.out.print("Enter a number ~ ");
        number = keyboard.nextInt();

        System.out.println(number);
        do {
            steps++;
            if (number % 2 == 0) {
                number = number / 2;
                System.out.println(number);
            }
            else {
                number = (3 * number) + 1;
                System.out.println(number);
            }
        } while (number != 1);

        System.out.println("\nThis took " + steps + " steps.");

    }
}

2 个答案:

答案 0 :(得分:4)

您可以跟踪变量maxNumber。将其初始化为数字:

 System.out.print("Enter a number ~ ");
 number = keyboard.nextInt();
 maxNumber = number;

在循环中,测试当前数字是否更高,如果是,请将maxNumber替换为数字。

...
    if (number > maxNumber) { 
        maxNumber = number;
    }
} while (number != 1);

打印出来,因为你想知道它:

 System.out.println(String.format("\nThis took %d steps. Max was: %d", steps , maxNumber));

答案 1 :(得分:2)

以下代码将执行最大数量计算

import java.util.Scanner;

public class CollatzSequence {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);

        int number = 0, steps = 0;
        int maxVal;
        do {
            System.out.print("Enter a positive number ~ ");
            number = keyboard.nextInt();
            maxVal = number;    
            System.out.println(number);
        } while (number <= 0);

        do {
            steps++;
            if (number % 2 == 0) {
                number = number / 2;
            }
            else {
                number = (3 * number) + 1;
            }
            System.out.println(number);
            if (number > maxVal) { 
              maxVal = number;
            }
        } while (number != 1);

        System.out.println("\nThis took " + steps + " steps.");

        System.out.println("\nMax Number is  " + maxVal);

    }
}