您好我正在尝试解决今年谷歌代码果酱的公平和平方的大量输入。对于大问题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
它不会工作 但如果我分别键入每一行,它将起作用 我该怎么做才能粘贴输入? 感谢
答案 0 :(得分:1)
尝试这样的事情:
String input ="";
while (reader.hasNextLine()){
input = reader.nextLine();
//parse each line
}