体面数字计划终止

时间:2015-09-07 10:04:32

标签: java list for-loop

实际上我写了一个程序来找到合适的数字..

体面编号具有以下属性:

3,5或两者都是数字。不允许其他数字。 出现3次的次数可被5整除。 出现的次数5可被3整除。

输入格式: 第一行将包含一个整数T,即测试用例的数量。接下来是T行,每行包含整数N,即数字中的位数。

输出格式: 最大的体面数有N位数。如果不存在这样的号码,请告诉Sherlock他错了并打印-1。

约束 1≤T≤20, 1≤N≤100000

public class TrySamp {

    public static void main(String[] args) throws ParseException {
        Scanner scan = new Scanner(System.in);
        long n = scan.nextInt();
        List<Long> list = new ArrayList<Long>();
        for (long i = 0; i < n; i++) {
            list.add(scan.nextLong());
        }
        for (int i = 0; i < list.size(); i++) {
            long s = list.get(i);

            long c = 5 * ((2 * s) % 3);
            System.out.println(c);
            if (c > s) {
                System.out.print(-1); 
            } else {
                int o=1;
                System.out.println("=="+ (o <= (s - c)));
                for (int j = 1; j <= (s - c); j++) {
                    System.out.print(5);
                }
                for (int k = 1; k <= c; k++) {
                    System.out.print(3);
                }
            }
            System.out.println("lo");
        }
    }
}

该程序适用于样本输入

示例输入:

  

4 1 3 5 11

示例输出

  

-1 555 33333 55555533333

但是当我输入

时程序终止
  

1 100000

  

1 10000

有谁能建议我解决这个问题的方法?? ..

2 个答案:

答案 0 :(得分:0)

我遇到了您的问题,Eclipse不允许您在控制台上打印如此大的数字。

如果您尝试在控制台中运行该程序,它将按预期工作。

答案 1 :(得分:-3)

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    long n = scan.nextInt();
    List<Long> list = new ArrayList<Long>();
    for (long i = 0; i < n; i++) {
        list.add(scan.nextLong());
    }
    for (int i = 0; i < list.size(); i++) {
        long s = list.get(i);
        long c = 5 * ((2 * s) % 3);
        if (c > s) {
            System.out.print(-1);
            System.out.println();
        } else {
            int o = 1;
            for (int j = 1; j <= (s - c); j++) {
                System.out.print(5);
            }
            for (int k = 1; k <= c; k++) {
                System.out.print(3);
            }
            System.out.println();
        }
    }
}