【发布时间】:2017-12-05 03:26:57
【问题描述】:
(这是我的家庭作业。所以我无法对任务进行任何更改,例如更改输入规则。)
我需要计算
a^m mod n
并打印出结果。 (我已经想出了如何编写计算代码。)
但问题说会有多行输入:
IN:
12 5 47
2 4 89
29 5 54
并且需要在读取所有输入行后将所有结果一起打印。 (不能在输入一行后立即打印结果。)
OUT:
14
16
5
到目前为止我尝试过的代码:
import java.util.Scanner;
public class mod {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int count = 0;
while (input.hasNextLine()){
count++;
}
int[] array = new int[count];
for (int i = 0; i < count; i ++){
int a = input.nextInt();
int m = input.nextInt();
int n = input.nextInt();
int result = (int)((Math.pow(a, m)) % n);
array[i] = result;
}
for (int x : array){
System.out.println(x);
}
}
}
我尝试计算输入的行数并构建一个该大小的数组来存储结果。
但我的代码似乎无法检测到输入的结束并继续循环。
【问题讨论】:
-
您需要在第一个循环中读取每一行并在该行上执行计算并输出结果,否则,您需要关闭并重新打开文件,然后再尝试再次读取它跨度>
-
检查我的答案和解释。
-
如何知道用户何时完成输入?
-
@MadProgrammer 谢谢!但任务要求我只在阅读所有行后输出结果。
-
@D M 是的,这是我的问题。我认为用户通过按“输入”键完成了输入。但我不确定如何检测到这一点。