java HackerRank说~标准输出没有响应~

vzgqcmou  于 2022-11-27  发布在  Java
关注(0)|答案(3)|浏览(157)

所以我在HackerRank(Project Euler Q1)link here上解决了这个问题,并使用了以下代码来解决它

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上的预期输出相匹配,但是当我在网站上使用此代码时,它会说:
输入(标准输入)

2
10
100

您的输出(stdout)

~ no response on stdout ~

预期输出

23
2318

编译器消息

Wrong Answer

我发现在HackerRank上无法打印循环中的任何内容。该如何解决这个问题呢?

brqmpdu1

brqmpdu11#

你并没有按照HackerRank的要求从STDIN中阅读数据。你不应该从args中获取输入,而应该做这样的事情:

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

和/或其他信息。

neskvpey

neskvpey2#

我只是运行了这段代码,编译好并提交了它。

import java.io.*;

public class Solution{

    public static void main(String[] args) throws IOException   
   {

        //Input
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        int[] N = new int[T];
        for(int t = 0; t < T; N[t++] = Integer.parseInt(br.readLine())){
        }
        br.close();
        br = null;

        //Solve
        long[] V = new long[T];
        for(int t = 0; t < T; ++t){
            int n = N[t] - 1;
            V[t] = 3*nSum(n/3) + 5*nSum(n/5) - 15*nSum(n/15);
        }

        //Print
        StringBuilder sb = new StringBuilder();
        for(int t = 0; t < T; sb.append(V[t++]).append("\n")){
        }
        System.out.print(sb);
    }

    public static long nSum(int n){
        long v = n;
        return (v*v + v) >> 1;
    }
}
oyxsuwqo

oyxsuwqo3#

我在一个PHP代码中遇到了同样的问题,我使用了return而不是echoing来替换sout

相关问题