我尝试使用Scanner
类读取代码中的空格分隔输入5 3
,使用nextInt()
方法可以很好地工作。当我切换到BufferReader
类以获得更快的I/O时,使用readLine()
不接受空格分隔输入作为单独的整数。
import java.util.*;
import java.lang.*;
import java.io.*;
public class Main
{
public static void main (String[] args) throws java.lang.Exception
{
try{
InputStreamReader r=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(r);
int t= Integer.valueOf(br.readLine());
while(t-->0){
int mel=Integer.valueOf(br.readLine());
int ban=Integer.valueOf(br.readLine());
System.out.println(cho(mel,ban));
}
}catch(Exception e){
return;
}
}
public static int cho(int m,int b)
{
if(m==0 || b==0 || (m==b))
{
return (m+b);
}
else
{
return m>b? cho((m-=b),b): cho(m,(b-=m));
}
}
}
x1米5英寸x1米6英寸
'我的输出2 5 3
...程序结束,退出代码为0。按ENTER退出控制台。
1条答案
按热度按时间nhaq1z211#
Integer.valueOf(br.readLine());
读取整行并将其解析为整数值,因此它只希望字符串中有一个整数值。如果要从由空格分隔的行中解析多个整数,则首先需要将其拆分(或使用regex搜索)。例如br.readLine().split(" ");
,然后迭代字符串数组并将其解析为整数