Здравейте,
Имам проблем с решението на Четни Числа в Judge. Локално минавам тестовете, но получавам WA Your output (clipped) - Infinity още при първия case в Judge. Прилагам кода:
const n = gets();
let arr = [];
let numbers = [];
arr = n.split(' ');
function isEven(n) {
return n % 2 == 0;
}
for (let i = 0; i < arr.length; i++) {
if (isNaN(arr[i])) {
continue;
} else {
if (isEven(arr[i])) {
numbers.push(arr[i]);
} else {
continue;
}
}
}
print(Math.max(...numbers));
Не виждам логика да не минава в Judge, дори сложих кода за BigInteger, ако случайно от там идва проблема, но не…
Здравей, не виждам да правиш проверка за случая, когато входът не съдържа четни числа.
Мисля, че имаше и случаи, в които числата не са отделени с интервал. За тях решението ти няма да сработи.
1 Like
Благодаря, бях пропуснал последното условие и ето, че имаме напредък - 50/100.
const n = gets();
let arr = [];
let numbers = [];
arr = n.split(' ');
function isEven(n) {
return n % 2 == 0;
}
for (let i = 0; i < arr.length; i++) {
if (isNaN(arr[i])) {
continue;
} else {
if (isEven(arr[i])) {
numbers.push(arr[i]);
} else {
continue;
}
}
}
if (numbers.length > 0 ) {
print(Math.max(...numbers));
} else {
print(-1);
}
Ако мога да гадая, проблема най-вероятно идва от това, което каза, че в някои случаи числата не са отделени с интервал. За съжаление идея нямам как да подходя от тук нататък…
0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
тест #11
Опитайте с мачване, вместо сплит!
1 Like
Въобще не се сетих, че при 0 трябва да върне 0… Ако ползвам директно match();
връща 0 на всички кейсове, не само на 11-ти. Ще прегледам в MDN как мога да го завъртя, мисля че се сещам за вариант, че дори може и кода да се поопрости.
/regex/ по дижитс, може да се изпробва
2 Likes
Лично аз проверявам всеки символ дали е между ‘0’ и ‘9’. При последователни цифри си ги събирам и така.
1 Like