CodeEval挑战Fizz Buzz

时间:2015-11-22 20:02:11

标签: java

我正在努力学习Java。有一天,我看到一个网站提供在线解决的挑战。这是我选择的代码项目:Fizz Buzz

这是我参与该项目的地方:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import java.util.NoSuchElementException;

public class Main {

public static void main(String[] args) throws IOException {
    File file = new File(args[0]);
    openFile(file);
    int[] line = new int[3];
    while (nextLine()) {
          try{


        line = readLine();
        String output = getLineOutput(line);
        System.out.println(output);
        }catch(NoSuchElementException e) { System.out.println("No such element exception"); }
    } 

}

static Scanner scan;

static void openFile(File file) {
    try {
        scan = new Scanner((file));

    } catch (FileNotFoundException e) {
        System.out.println("Could not find file");
    }
}

static int[] readLine() {

    int a = scan.nextInt();

    int b = scan.nextInt();

    int c = scan.nextInt();

    int[] line;
    line = new int[] { a, b, c };

    return line;

}

static boolean nextLine() {
    return scan.hasNextLine();
}

static String getLineOutput(int[] line) {
    StringBuilder sb = new StringBuilder();
    for (int i = 1; i <= line[2]; i++)
        if (i % line[0] == 0 && i % line[1] == 0) {
            sb.append("FB ");
        } else {
            if (i % line[0] == 0) {

                sb.append("F ");
            }
            if (i % line[1] == 0) {
                sb.append("B ");
            }
            if (i % line[0] > 0 && i % line[1] > 0) {
                sb.append(i + " ");
            }

        }
    return sb.toString();
}

}

当我在命令提示符下运行程序时,提供文本文件的路径作为第一个参数,我的程序似乎工作正常。在CodeEval上我收到以下错误:

CodeEval错误:编译在10秒后中止

我应该以不同方式访问文件吗?我缺少一个例外吗?我的例外都没有促使我。

1 个答案:

答案 0 :(得分:2)

如果这有助于将来的任何人,此代码不会关闭扫描仪。不幸的是,在CodeEval上,如果是这种情况,代码就不会执行。

在main方法结束时(while循环解决后)添加scan.close()问题。

编辑:代码差异

public static void main(String[] args) throws IOException {
    File file = new File(args[0]);
    openFile(file);
    int[] line = new int[3];
    while (nextLine()) {
          try{   
        line = readLine();
        String output = getLineOutput(line);
        System.out.println(output);
        }catch(NoSuchElementException e) { System.out.println("No such element exception"); }
    } 
    scan.close();

}