2013-04-19 3 views
1

안녕하세요 올해의 Google 코드 잼의 공평하고 정교한 대용량 입력을 해결하려고합니다. 나는 큰 문제 1을 위해 충분히 빠른 작업 코드를 가지고있다. 그러나 콘솔에 입력을 붙여 넣을 때 모든 것을 읽지는 않는다. 실제로 그것은 어떤 이유로 마지막 입력을 읽습니다. 입력을 붙여 출력을 얻고 싶습니다. 스캐너 클래스가 문제의 원인입니까?스캐너 클래스 입력 문제

코드 :

5 
1 100 
2 200 
1 500 
1 1000000 
1 1000000000 

그것은 늘 작동하지만 난 별도로 각 줄을 입력 한 경우 내가 할 일을 작동합니다 : 나는 예를 붙여 입력하면

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]); 
} 
} 

이제 문제는 그래서 입력을 붙여 넣을 수 있습니까? 감사

+0

통해 UR 질문 무엇을 말해 .... 당신이 출력으로 원하든 싶어 –

+0

질문 - http://code.google.com/codejam/contest/ 2270488/대시 보드 # s = p2 나는 그것을 올바르게 풀 었다고 확신한다. 필자는 스캐너 클래스의 입력을 붙여 넣는 방법을 모른다. –

+0

한계 5를 입력하면 프로그램이 실제 5 줄 오른쪽이어야 함을 의미합니다. –

답변

1
이 같은

시도 뭔가 :

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

}