JAVAutil。扫描仪如何使用BufferedReader在Java中获取空间分隔的输入?
如何使用BufferedReader在Java中获取空格分隔的输入强> 请相应地更改代码,我希望a、b、n的值是以空格分隔的整数,然后我希望在每个测试用例之后按Enter键。 这意味着首先输入测试用例的数量,然后按Enter键。然后输入a的值,然后按空格,再按空格,然后输入n的值,然后按回车键输入下一个测试用例
我知道这可以通过扫描仪轻松完成,但我不想使用它,因为它会在在线评委身上抛出TLE(时间限制延长)错误
public static void main(String[] args) throws IOException {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputString = br.readLine();
int testCases = Integer.parseInt(inputString);
double a,b,n,j,t=1;
int i;
int ans [] = new int[testCases];
for(i=0;i<testCases;i++)
{
inputString = br.readLine();
a = Double.parseDouble(inputString);
inputString = br.readLine();
b = Double.parseDouble(inputString);
inputString = br.readLine();
n = Double.parseDouble(inputString);
for(j=0;j<n;j++)
{
if(t==1)
{
a*=2;
t=0;
}
else if(t==0)
{
b*=2;
t=1;
}
}
if(a>b)
ans[i]=(int)(a/b);
else
ans[i]=(int)(b/a);
t=1;
}
for(i=0;i<testCases;i++)
System.out.println(ans[i]);
}catch(Exception e)
{
return;
}
}
# 1 楼答案
首先读取要读取的输入行数
然后分析每一行并得到字符串
虽然我还没有添加NumberFormatException处理,但拥有它是个好主意
按如下方式更改for循环: