无法在" ride.out"上打印我的结果文件

时间:2014-07-24 14:42:13

标签: java

我在USACO培训页面遇到第一个问题时遇到了问题。

任务是要求ride.in文件中的两个字符串,将字符串转换为字母的乘积(其中a = 1,b = 2,z = 26),然后查看是否数字的剩余部分= 47(如果是,打印" GO"如果没有,请打印"保留"在ride.out上)。

我不知道为什么我无法在ride.out打印输出。

我写的代码是:

package ashish.usaco.com;

import java.io.*;

import java.util.*;

class ride {

    public static void main(String[] args) throws IOException {
        try {
            BufferedReader input = new BufferedReader(new FileReader("ride.in"));
            // input file name goes above
            PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("ride.out")));

            // Use StringTokenizer vs. readLine/split -- lots faster
            StringTokenizer st = new StringTokenizer(input.readLine());

            if (toNumber(st.nextToken()) % 47 == toNumber(st.nextToken()) % 47) {
                out.println("GO");
            } else {
                out.println("STAY");
            }
            out.close();
            input.close();
            System.exit(0);
        } catch(NoSuchElementException e) {
            System.out.println("File not Found");
        } catch(IOException e) {
            System.out.println("File not Found"); 
        }
    }

    public static  int toNumber (String name) {

        int pdtvalue =1, charvalue =1;

        for(int i=0; i<name.length();i++)
        {
            charvalue = (name.charAt(i) - 'A')+1;
            pdtvalue*= charvalue;
        }
        return pdtvalue;
    }
}

2 个答案:

答案 0 :(得分:1)

感谢大家的帮助..

特别感谢alobodkz ..你真的告诉了正确的部分。我的ride.java程序找不到ride.in文件,因为它不在正确的目录中..我删除了包含代码的整个包,并写了一个新的ride.java类文件,这次没有 包装声明..

答案 1 :(得分:0)

在此声明中:

if (toNumber(st.nextToken()) % 47 == toNumber(st.nextToken()) % 47)

您不会检查数字提醒是否等于47。 您正在检查两个数字%(模运算符)47的提醒是否彼此相等。

因此,例如,如果第一个令牌== 47,第二个令牌== 94 - &gt;你的情况是正确的,所以它与你在问题描述中所呈现的完全不同。