Задача "Numbers"

Здравейте,

Получавам в Judge системата код IR при тестването на задачата там. Какво означава този код?
Локално всичко работи както трябва. Притеснява ме отново, че има проблем с обработването с инпута. Задачата

Пробвай да я пуснеш във vscode.

Означава, че кода ти хвърля грешка.
Нямам предвид грешен отговор.

Точно във VSCode всичко върви точно и аутпута е очаквания

Използваш ли gets() и print() за вход и изход?

Да, използвам ги. Копирах точно кода точно който пускам локално

Може ли да копираш целият код и да го споделиш? Ако може и условието. :slight_smile:

В първия си пост сложих линк, но ето пак:
https://pastebin.com/fgv098kE
И условието:
https://judge.telerikacademy.com/problem/14numbers

Здравейте,

if (arr[y].substring(0, arr[y].length-2)===‘set’) ===> по-добре да е if (arr[y].search(‘set’) !== -1), и т.н.
кода в този вид работи, ако само една цифра се подава, а в условието изрично е казано че могат да се подават огромни числа (да се чете BigInt :wink: ).
Иначе лично предпочитам String.padStart и String.padEnd където е приложимо, както и използването на RegExp за вземане на числа, защото не се знае дължината им.

Поздрави, Петър

Това което не виждам в кода ти е как взимаш входните данни с gets().

От това, което виждам в условието трябва да взимаш толкова на брой входни данни, докато не получиш string ‘end’.

На всеки ред получаваш команда, която трябва да изпълниш и съответно число, ако командата работи с числа.

Питах те по рано дали ползваш gets(), защото не видях да ползваш gets(). :slight_smile:

Надявам се пояснението ми да ти помогне.

Здравейте,

Благодаря ви и на двамата за забележките, поправих кода, но отново бива отхвърлен от Judge.
Мисля, че изпълних и двете условия, за които споменахте - да има gets() като input и да работи и за големи числа.
https://pastebin.com/xJztxDMf

Здравей,

До 36 ред кода се ползва за съвместимост с judge системата и в масива test може да си подаваш примерен input, като всяка стойност от масива е нов input.

На 41-ви ред казваш на for цикала да итерира до дължината на test масива, но в judge системата реално нямаш достъп до такъв масив. Може да взимаш input само с gets().

В задачата е казано, че ще се подава input с определени ключови думи и срещу някои ключови думи ще има число. От примерния масив test, всяка стойност се взима с отделно gets(). В judge също ще взимаш всяка стойност с gets().

Винаги последния input e string ‘end’. Може да помислиш в тази посока.

От примера може да заключим, че input е string, примерно ‘set NUMBER’ или ‘set 2’, което значи че може да вземеш този string, да го разделиш по празно място (’ '), да провериш каква е ключовата дума в случая ‘set’ и да изпълниш, в случая с числото ‘2’, някакво действие съгласно командата ‘set’.

За всички останали команди логиката е аналогична.

Кода ще работи и по начина, по който си го направила, като промениш някой неща.

Успех :slight_smile: