Проблема юного физика в Code Force (JAVA) Ошибка времени выполнения - PullRequest
0 голосов
/ 16 апреля 2020

Я новичок в CodeForces, когда я запускаю этот код в NetBeans, он работает правильно, но когда я отправляю его в CodeForces, он выдает мне ошибку времени выполнения в тесте 1. что не так? Это проблема

Это мой код:

package cw;

import java.text.NumberFormat;
import java.util.Scanner;

public class CW {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner ourNumber = new Scanner(System.in);
        int VasyaNumber = ourNumber.nextInt();
        String result = Vasya(VasyaNumber);
        System.out.println(result);

    }

    public static String Vasya(int number) {
        String saying;
        int ours = 0;
        int resultone = 0;
        int resulttwo = 0;
        int resultthree = 0;
        while (ours < number) {
            Scanner yourNumber = new Scanner(System.in);
            int x = yourNumber.nextInt();
            int y = yourNumber.nextInt();
            int z = yourNumber.nextInt();
            resultone += x;
            resulttwo += y;
            resultthree += z;
            ours += 1;
        }
        if (resultone == 0 && resulttwo == 0 && resultthree == 0) {
            saying = "YES";
        } else {
            saying = "NO";
        }
        return saying;
    }

}

1 Ответ

2 голосов
/ 16 апреля 2020

Поскольку вы новичок, у меня есть несколько советов для вас.
1. Использование нескольких сканеров (в одном потоке) является очень плохой практикой, поскольку сканеры используют поток, которым они делятся. Для получения дополнительной информации: Прочтите это .
Решение: Для консольных приложений используйте один Scanner для чтения из System.in.

2. После решения проблемы на ноутбуке , тогда вы должны прокомментировать эту строку package cw;, чтобы отправить ее онлайн-судье, в противном случае выдаст вам эту ошибку:

Error: Could not find or load main class CW
Caused by: java.lang.ClassNotFoundException: CW

Обновлено

У меня есть изменил ваш код, и теперь он работает:

//package cw; // you must comment this line because will give you error if upload it to online Judge
import java.text.NumberFormat;
import java.util.Scanner;
import java.util.*;


public class CW 
{
    public static void main(String[] args) 
    {
        Scanner ourNumber = new Scanner(System.in);
        int VasyaNumber = ourNumber.nextInt();
        // Updated , send scanner object as Parameter 
        String result = Vasya(VasyaNumber , ourNumber);
        System.out.println(result);
    }

    public static String Vasya(int number , Scanner yourNumber) 
    {
        String saying;
        int ours = 0;
        int resultone = 0;
        int resulttwo = 0;
        int resultthree = 0;
        while (ours < number) 
        {
            int x = yourNumber.nextInt();
            int y = yourNumber.nextInt();
            int z = yourNumber.nextInt();
            resultone += x;
            resulttwo += y;
            resultthree += z;
            ours += 1;
        }

        if (resultone == 0 && resulttwo == 0 && resultthree == 0) 
        {
            saying = "YES";
        } 
        else 
        {
            saying = "NO";
        }
        return saying;
    }

}

Модификация
1. Прокомментируйте эту строку package cw;, иначе вы получите ошибку, как я уже говорил перед.
2. Передача объекта сканера в качестве параметра функции Vasya. Функция
3. Vasya теперь имеет два параметра. int и Scanner. В вашем случае первый параметр VasyaNumber и второй параметр Scanner называются ourNumber.
4. вам больше не нужна эта строка кода Scanner yourNumber = new Scanner(System.in); но почему? потому что вы уже заявили об этом в своем main()

Надеюсь, что это поможет вам, удачи и вам sh всего наилучшего!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...