早上好,
我正在做一些Java练习,偶然发现了这个问题.我有一个带有几个数字的.txt文件,每行一个.练习的目的是看到哪些数字等于10 ^ 0,...,10 ^ n直到达到n.然后,我必须用.txt写出每一个出现的次数.所以我有一个文件:
1 100 100 100 10 1 1
我需要写:
1 - 10 3 - 1 3 - 100
我可以读取文件,检查然后编号然后打印.我只是想不出如何制作一个计数器而不是保持正确.有帮助吗?
这是一段代码:
// TODO - Count how many time a number appears.
public static void numberOfTimes (BufferedReader in, BufferedWriter out, int n) throws IOException {
String s;
int i;
int counter = 0;
while ((s = in.readLine()) != null) {
i = Integer.parseInt(s);
for (int j = 0; j <= n; j++) {
if (i == Math.pow(10, j)) {
counter++;
out.write(Integer.toString(counter) + " " + Integer.toString(i) + "\n");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于需要跟踪多个计数,因此单个整数计数器显然不够.
一种可能性是Map<Integer,Integer>用于计数.由于这是家庭作业,我留给你弄清楚细节.
另一种可能性是使用计数数组,并log10(i)用作数组的索引.换句话说,count 10^k将存储在k数组中的-th位置.提示:在您的代码中,您已经间接计算log10(i).
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |