Професионална програма
Loading...
+ Нов въпрос
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Задача 01 - Зеленчукова борса/ JS Solution/ Judge Problem/ Programming Basics/ Head-scratcher

Решавам си аз една задачка за плодове и зеленчуци в 12ч през нощта, браузерът визуализира резултата вярно, а Judge ми връща "The user output should hold at least one number." Все едно съм му подал зеленчуци, а не стрингове и числа.

Задача: https://judge.softuni.bg/Contests/Practice/Index/179#0

Код: http://pastebin.com/5Q6PsZwJ

 

В Хром резултатът е число. Дори тествам с console.log(typeof Profit);  и браузерът ми връща "number".  Защо тогава Judge ми казва, че е зеленчук, другари програмисти?

0
Programming Basics
Filkolev avatar Filkolev 4485 Точки

Проблемът може би е с начина на подаване на входните данни, но с тоя чекер дето е сложен не мога да разбера как точно се подават. Възможно е и тестовете да трябва да се коригират, защото при принтиране на arr[0] винаги излиза 10, а arr[1] винаги дава undefined.

Махни точката и запетаята накрая, не се слага при дефиниране на функции.

0
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Премахването на точката и запетаята в края на функцията не променя нещата. Данните винаги ги подавам като масив по този начин:
solve([1.5, 2.5, 10, 10]);

Числата са примерни входни данни от условието на задачата.

0
Filkolev avatar Filkolev 4485 Точки

Да де, ти така ги подаваш, но системата какво подава не е много ясно. Някой, който има пряк достъп трябва да провери и да види дали може нещо да се направи. В противен случай няма как да се реши задачата, след като на всеки тест се подава масив с един елемент, който е 10 (поне моите експерименти това показват).

Относно точката и запетаята - просто не се слага според правилата на езика.

1
RoYaL avatar RoYaL Trainer 6845 Точки

Подава се масив с един елемент, който съдържа целия вход.

0
RoYaL avatar RoYaL Trainer 6845 Точки

Мисля, че на тази задача не ги получаваш като масив от 4 елемента, а всичките редове идват като нулев елемент на масива.

Пуснах този код

function solve(arr) { console.log(arr[0].length); }

И видях, че дължината на нулевия елемент в масива на първия нулев тест е 16. Което отговаря на символите във входа на първя нулев тест (0.194\n19.4\n10\n10) където "\n" бидейки контролен character се брои за един символ (чертата ескейпва, не е символ).

0
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Не съм сигурен какво трябва да означава това. За мен, код, който работи в браузера, би трябвало да работи и в Judge.

0
RoYaL avatar RoYaL Trainer 6845 Точки

Означава точно това което казах, даже ти дадох пример. Между горния пост и моя пост може да се върже 2 и 2, че се оказва, че в тази задача поради някаква причина получаваш данните не като масив от 4 елемента, а като масив от ЕДИН елемент, където са наблъскани всички данни разделени с нов ред (или друг whitespace разделител).

Най-вероятно трябва да ги извикаш така:

solve(["0.194\n19.4\n10\n10"]);

1
09/05/2016 00:51:45
sider.topalov avatar sider.topalov 38 Точки

Ако все още имаш нужда от помощ, ще те помоля да линкнеш цялостното си решение за да ти се помогне. Тъй като гледам това което си дал като код е метод и е правилен очевидно грешката ти идва в самия вход по начина по който подаваш данните.

0
10/05/2016 13:50:52
sider.topalov avatar sider.topalov 38 Точки

Окей сега като видях условието на задача разбрах каде ти е грешката. В условието се казва "От конзолата се четат 4 числа, по едно на ред". Следователно трябва да си промениш метода пример:

function solve(num1,num2,num3,num4) {

    var pricePerKgVegetables = num1;
    var pricePerKgFruits = num2;
    var totalKgVegetables = num3;
    var totalKgFruits = num4;
    var eurRate = 1.94;
    var Profit = (totalKgVegetables * pricePerKgVegetables + totalKgFruits * pricePerKgFruits) / eurRate;

    console.log(Profit);

};

static void Main()
{
    int num1 = int.Parse(Console.ReadLine());
    int num2 = int.Parse(Console.ReadLine());
    int num3 = int.Parse(Console.ReadLine());
    int num4 = int.Parse(Console.ReadLine());
    
    solve(num1,num2,num3,num4);
}

 

Това е решението по условие на задачата тъй като ти искат числата всяко на нов ред.

 

0