这是我的代码
import java.util.*;
import java.io.*;
public class palsquare {
public static void main(String[] args) throws IOException{
//File file = new File("palsquare.in");
//Scanner scanner = new Scanner(file);
BufferedReader in = new BufferedReader(new FileReader("palsquare.in"));
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("palsquare.out")));
StringTokenizer st = new StringTokenizer(in.readLine());
int base = Integer.parseInt(st.nextToken());
for(int i = 1; i < 300; i++){
String e = Integer.toString(i * i);
String t = convertFromBaseToBase(e, 10, base);
if(t.equals(revStr(t))){
out.println(i + " " + t);
}
}
}
public static String convertFromBaseToBase(String str, int fromBase, int toBase) {
return Integer.toString(Integer.parseInt(str, fromBase), toBase);
}
public static String revStr(String str){
String revStr = "";
for(int i = str.length() - 1; i >= 0; i--)
{
revStr = revStr + str.charAt(i);
}
return revStr;
}
}
我很困惑为什么我的代码不起作用 . USACO的培训师回复我的提交,说它返回了一个空白文件,但在我的电脑上,它在使用扫描仪时起作用,我不知道如何在我的电脑上使用它 . 我才12岁,还在学习 . 先感谢您 .
1 回答
这里的问题是没有
flush()
操作将内容推送到文件 . 这可以使用.flush()
或.close()
来完成 . 你可以使用漂亮的Closeable
接口(这可以捕获异常):这将自动关闭输入/输出流并在输出流上调用flush()