Odd and Even Product

Здравейте, в задачата Odd and Even Numbers ми гърми един от тестовете:

"
Test case #1: AC [0.144s, 27.10 MB] (1/1)
Test case #2: AC [0.144s, 27.11 MB] (1/1)
Test case #3: AC [0.143s, 27.16 MB] (1/1)
Test case #4: AC [0.143s, 27.12 MB] (1/1)
Test case #5: WA [0.142s, 27.09 MB] (0/1)
Your output (clipped)
no 1 0

Final score: 4/5 (80.0/100 points) "

Къде греша, ако може някой да даде съвет.

Здравей :slight_smile:
Моля изполвай https://pastebin.com/, за да предоставиш кода си :wink:
Така е по-лесно да се дебъгне :slight_smile:

Поздрави,
Диди

1 Like

Подхода, който използваш работи, но какво би станало, ако получиш двуцифрено число? :slight_smile:

1 Like

Привет и от мен :slight_smile:
Няколко пъти преглеждах кода, и мисля, че цялата логика не е изградена правилно, а примерния от задачата е минал случайно:

Input Output
5
2 1 1 6 3 yes 6

Доколкото виждам в кода ти, ти взимаш всички n числа и ги събираш в стринг, в който заделяш чарове на позиция 0,2,4,6 и тн чар в oddNumbers, а всички чарове на нечетна позиция - в evenNumbers.
Първият проблем е, че в условието не е уточнено, че числата се дават едно през друго.
В дадения пример имаш 2 (четно), 1 ( нечетно), 1 (нечетно), 6 (четно) и 3 (нечетно). При теб те излизат:
нечетни: 2,1,3
четни: 1, 6

Първа стъпка - както е казал Тодор по-горе - трябва да избереш подходяща структура, която да държи числата, тъй като в момента разглеждаш само цифри.
Втора стъпка - трябва да обработиш всяко число и да провериш дали когато го делиш на 2 има остатък 1 или 0 и по този начин да ги разделиш на четни и нечетни :slight_smile:

1 Like

Да така бяха дадени примерите и условието, че приех решението за цифри само че е… и затова се чудех и маех къде може да се дъни :slight_smile:

Ех тези числа :slight_smile:

https://pastebin.com/G1XfrAqa

С новия код в пейстбин си орпавил проблема, споменат от Тодор, но все още разпределяш четни и нечетни числа през едно, вместо да видиш стойността им. Възприемаш, че първото число е нечетно, второто - четно и тн, а не е така :slight_smile:
Както казах по-горе:
“Първият проблем е, че в условието не е уточнено, че числата се дават едно през друго.
В дадения пример имаш 2 (четно), 1 ( нечетно), 1 (нечетно), 6 (четно) и 3 (нечетно). При теб те излизат:
нечетни: 2,1,3
четни: 1, 6”

Така е така е :slight_smile: Прочети внимателно условието.
*решението минава съдията на 100%

Условието е подвеждащо но след бърз преглед на примернитете вход и изход става ясно какво се иска.

1 Like

@stoian2010 Не знам как ти работи решението, дава: 0.2 секунди time execution, 28МБ ресурс

Здравейте,
имам “някакъв” проблем с тази задачка. Последният тест не минава и нямам представа защо!?


Ако ме ориентирате ще съм много благодарен.

Здравей,

аз малко не се ориентирам в логиката с това line, което намаляваш - в смисъл - гледаш по номера на последната цифра къде да умножиш текущата?? Това случайно работи при нечетен брой на входни елементи, но при четен се обръща ->
При примерен вход
4
1 5 1 5
ще принтираш “no 25 1”,
а би трябвало да е “no 1 25”.

Защо не пробваш да преценяваш същото по текущия ти индекс i - дали той е четен или не , и да умножаваш текущото число в съответната променлива спрямо i.

if (i % 2 == 1)

Освен това, бих те посъветвала да пробваш с BigInteger, тъй като при умножение на големи числа, които все пак се побират в integer, лесно ще прехвърлиш допустимите стойности на integer-a. Пример:
5
1 123456789 1 987654321 1
no 1 -67153019

Успех:)

1 Like

Така като ме попита, честно да си призная и аз незнам защо съм сложил този line там :grinning: .
Махнах го и всичко е ок. Благодаря!

1 Like