Mock Exam 2: Game

Здравейте!
Имам въпрос относно условието и примереите в задача Game от Mock Exam 2.
При подаден input: 185 и използване на “by using operators for sum and multiplication” верния отговор не е ли (1+8) * 5 = 45, а не посочения 41, който съответства на 1 + (8 * 5)?

Благодаря предварително!

Диди

Здравей,

За да се разгледа всички възможни комбинации, числото трябва да се разпише по следния начин:

1 + 8 + 5 = 14
1 + 8 * 5 = 41
1 * 8 + 5 = 13
1 * 8 * 5 = 40

Поздрави,

2 Likes

Блгодаря :slight_smile:

В старанието си измислих повече комбинации, но бях залитнала в друга посока :slight_smile:

https://pastebin.com/ZZPwUMiV
Здравейте!
Бихте ли ми погледнали кода и да ми кажете къде греша

Видях си грешката!!
Нямам последната проверка с умножението

1 Like

Здравейте,

Може ли да ми помогнете и да ми кажете къде греша.

https://pastebin.com/ndzZ0Qq0

Предварително благодаря!

Здравей Колега,
Тук, трябва да добавяш number, а не digit.

while (digit > 0) {
        int number = digit % 10;
        digit /= 10;
        myList.add(digit);
    }

Поздрави,
Мишо

Здравейте колеги,
Някой може ли да каже защо на 3 проверки кода ми гърми ?
https://pastebin.com/s7hBV96j

Вероятно при проверки за по-голямо/малко от 1/2 нещо се чупи. Не е ли по-добре да разгледаш задачата като 4 възможни изхода между подадените числа, като намериш най-голямото вместо ти да проверяваш за определена стойност?

Здравей :slight_smile:

Също така комбинациите са с различни знаци между цифрите, което не очаква разместване на цифри, т.е. сценарий num1 * num3 + num2 не е валиден.

След това може да тестваш с примерен вход 313 -> 9.

Ако все още има проблеми пиши :wink:

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

1 Like

Виждам, че вече много хора са се “потили” над евентуални грешки. Може ли да погледнете и моето решение, което ми дава 80/100 точки. Мисля си ,че пробвах всички критични Input-и и не виждам къде би могло да върне грешен отговор.Винаги смята правилното число в intelliJ.

Здравей,
имаш доста if-else-ове и явно изпускаш някой случай.

Пробвай да дебъгнеш например с вход 512 (което при теб изкарва резултат 8, а трябва да е 10) или с 313, 919 и тн., за да си оправиш логиката или да видиш кой случай изтърваш.

По принцип по-просто би било, ако разкараш if-esle-овете. Имаш 4 варианта:
a+b+c
a+b^c
a^b+c
a^b^c
и можеш просто да сметнеш всеки от тях, като върнеш максималния резултат.

Успех! :slight_smile:

5 Likes