无法重现UVa Online Judge给我的运行时错误

时间:2012-02-19 23:41:43

标签: java runtime-error

我的Java解决方案遇到UVa Online Judge问题的运行时错误。我已经完成了Problem 100并且它在我的最后工作。什么可能导致问题的想法?

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Scanner;

class P100 {

    public static void main(String args[]) {
        Hashtable<Integer, Integer> solutions = new Hashtable<Integer, Integer>();
        Scanner input = new Scanner(System.in);

        while (input.hasNextInt()) {
            int lowerBound = input.nextInt();
            int upperBound = input.nextInt();

            int longestCount = 0;

            for (int i = lowerBound; i <= upperBound; i++) {
                int n = i;
                int count = 1;

                ArrayList<Integer> sequence = new ArrayList<Integer>();

                while (n != 1) {
                    if (solutions.containsKey(n)) {
                        count += solutions.get(n) - 1;
                        break;
                    }

                    sequence.add(n);

                    count += 1;
                    if (n % 2 == 0) n /= 2;
                    else n = 3 * n + 1;
                }

                for (int j = 0; j < sequence.size(); j++) {
                    solutions.put(sequence.get(j), count - j);
                }

                if (count > longestCount) longestCount = count;

                solutions.put(i, count);
            }

            System.out.printf("%d %d %d\n", lowerBound, upperBound, longestCount);
        }
    }

}

2 个答案:

答案 0 :(得分:1)

您需要重命名

class P100

public class Main

当您将代码复制到UVa中时,它会告诉您未找到Main类。这样法官可以运行你的代码(因为java需要知道类名)。我自己有时会忘记这样做。

答案 1 :(得分:0)

我在使用UVa Online Judge运行Java代码时遇到问题。它可能与您当前的问题没有直接关系,但无论如何,请查看我的answer,看看它是否有任何帮助。