2016-08-20 41 views
0

所以我想解决的HackerRank(项目欧拉Q1)link here这个问题,并已用下面的代码来解决它HackerRank说〜在标准输出上没有任何反应〜

import java.io.*; 
import java.util.*; 
import java.text.*; 
import java.math.*; 
import java.util.regex.*; 

public class Solution { 

public static void main(String[] args) { 
    /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */ 

    int T = 0; 
    ArrayList<Integer> N = new ArrayList<Integer>(); 
    String[] Input = args; 
    if (args.length>1){ 
     T = Integer.parseInt(args[0]); 
     if(T<1||T>Math.pow(10,6)) 
      System.exit(0); 
    } 
    if (args.length-1 == T){ 
     for (int i=1;i<args.length;i++){ 
      N.add(Integer.parseInt(args[i])); 
      int sum3=0,sum5=0,sum15=0; 
      int count=0; 
      while (count<N.get(i-1)){ 
       sum3+=count; 
       count+=3; 
      } 
      count =0; 
      while (count<N.get(i-1)){ 
       sum5+=count; 
       count+=5; 
      } 
      count =0; 
      while (count<N.get(i-1)){ 
       sum15+=count; 
       count+=15; 
      } 
      N.set(i-1,(sum3+sum5-sum15)); 
     } 
    } 
    for(int j=0;j<N.size();j++) 
     System.out.println(N.get(j)); 
    } 
} 

这给了我下面的输出上IDE:

23 
2318 

在输入:

2 
10 
100 

而这个比赛日在HackerRankË预期的输出,但然而,当我在网站上使用此代码,它说:

输入(stdin)

2 
10 
100 

你的输出(stdout)

~ no response on stdout ~ 

的预期输出

23 
2318 

编译消息

Wrong Answer 

我可以观察到的一件事是我无法在HackerRank的循环内打印任何东西。这个解决方案会是什么?

+0

您通过'args'(命令行参数)而不是STDIN(标准输入)获取参数。 – NullUserException

回答

0

你不是按照HackerRank的要求从STDIN读取的。而不是从args得到你的输入,你应该做这样的事情:

Scanner sc = new Scanner(System.in); 
    int numberOfTestCases = sc.nextInt(); 

等等。

相关问题