Здравствуйте уважаемое сообщество!
Задача - https://javarush.com/tasks/com.javarush.task.task04.task0417#discussion
Почему-то задача не проходит валидацию, по пункту "если два числа равны между собой, необходимо вывести оба на экран". Уж как я только не извращался, но на всех тестовых наборах работает корректно. Даже лишний пробел при выводе обрезал, а валидация все не проходит.
Прошу совета. Код ниже.
package com.javarush.task.task04.task0417;
/*
Существует ли пара?
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Solution {
public static int eq = 0;
public static int eqCount = 1;
public static boolean isThereEq(int a, int b, int c){
int[] arr = {a, b, c};
eq = a;
for (int i = 1; i <= 2; i++) {
if(arr[i] == eq) {
++eqCount;
}
}
if(eqCount == 1)
if(b == c){
++eqCount;
eq = c;
}
else return false;
return true;
}
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
String sIn = cin.readLine();
int a = Integer.parseInt(sIn);
sIn = cin.readLine();
int b = Integer.parseInt(sIn);
sIn = cin.readLine();
int c = Integer.parseInt(sIn);
if(isThereEq(a, b, c))
for (int i = 1; i <= eqCount; i++) {
if(i < eqCount)
System.out.print(eq + " ");
else System.out.println(eq);
}
}
}
Поменял код для вывода на экран на:
if(isThereEq(a, b, c)) {
for (int i = 1; i <= eqCount; i++) {
if (i < eqCount) {
buildStrForOut.append(eq);
buildStrForOut.append(" ");
} else buildStrForOut.append(eq);
}
System.out.println(buildStrForOut.toString());
}
Таким образом, теперь строго одно выполнение вывода в консоль. Все равно не проходит валидация.