扫描仪类输入问题

时间:2013-04-19 09:20:05

标签: java input

您好我正在尝试解决今年谷歌代码果酱的公平和平方的大量输入。对于大问题1,我有一个足够好的快速工作代码。 但是,当我在控制台中粘贴输入时,它不会读取所有内容。事实上它只是出于某种原因读取最后一个输入。我想粘贴输入并获得输出。扫描仪类是否导致问题?

代码:

import java.util.Scanner;
class rishab {
 public static int check() {
 Scanner reader = new Scanner(System.in);
 double A=reader.nextLong();
 long B=reader.nextLong();
 int count = 0;
 long i;
 if((long)Math.sqrt(A)==Math.sqrt(A))
   i= (long)Math.sqrt(A);
 else
  i=(long)Math.sqrt(A)+1; 
for(;i<=Math.sqrt(B);i++) {
 if(i==reverse(i) && Math.pow(i,2)==reverse((long)Math.pow(i,2)))
  count++;
 }
 return(count);
 }

 public static long reverse(long number) {
  long result = 0;
  while (number != 0) {
   long remainder = number % 10;

    result = result * 10 + remainder;

    number /= 10;
 }
 return result;
 }
  public static void main(String str[]) {
 int[] a= new int[10000];

 Scanner reader = new Scanner(System.in);
 int T= reader.nextInt();

for(int i=0;i<T;i++)
 a[i]=check();
for(int i=0;i<T;i++)
 System.out.println("Case #"+(i+1)+": "+a[i]);
}
}

现在的问题是,例如我输入PASTE:

5
1 100
2 200
1 500
1 1000000
1 1000000000

它不会工作 但如果我分别键入每一行,它将起作用 我该怎么做才能粘贴输入? 感谢

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

String input ="";
while (reader.hasNextLine()){
    input =  reader.nextLine();
    //parse each line   

}