Проблем с задача (Python)

Здравейте, относната задача е тази:

Game

Three friends came up with a game for having fun in the break between the classes. One of them says a three-digit number and the others use it to form a mathematical expressions by using operators for sum and multiplication between the digits.

The winner is the first one who founds the biggest number that is a result of the above mentioned rules.

Write a program ‘game’, which prints out that biggest number.

Input

Read from the standard input

  • The first line of the input will be positive three-digit number N .

Output

Print on the standard output

  • The result should be the calculated biggest number.
  • The calculation order

Sample tests

Input

185

## Output
41

Input

111

## Output
3

Кодът който съм написал е тук code - Pastebin

Логиката ми е, да махна нулите от числото, защото те нито ще се умножават нито събират с нещо, и да махна и запомня броят на единиците, защото за максималното възможно число те винаги ще се събират, а всички други числа от 2 нагоре винаги ще се умножават.

Проблемът е, че когато подам кода ми дава че 3/10 use case-a са грешни, а от половин час пробвам най-разнообразни входни данни и всеки път изходните данни са верни и не мога да разбера в какви случаи кода ми не работи.

ПС: Знам че второто ‘continue’ нищо не прави, остана от предишна версия на кода и забравих да го махна, извинете.

Пробвай с input: 302 верниятотг. е 5, при теб е 6
или 503 : 8 vs 15
Успех и кажи, ако не се сетиш, къде бъркаш :slight_smile:

1 Like

Аха, не съм прочел условието изцяло правилно значи, мислех че могат да се разбъркват цифрите и например при 302 да е 3 * 2 + 0. Но да, сетих се, благодаря! :slight_smile:

1 Like

Извинявай, мога ли пак те обезпокоя? Написах наново задачата със вече уж правилната логика, но изпитвам същият проблем - отново всичко което тествам изглежда вярно но след submit на кода два test case-а дават грешен отговор.

По-четлив код с коментари: "Game" task - Pastebin

Привет, получи се 100/100, когато добавиш проверка за равно с първия индекс и при двата if-a.
(number[1] >= 1 и при двете if проверки).
По твоя код Input 313 дава Output 7, а като добавиш проверка за равно с първия индекс и тогава кодът взима знакът за умножение, съответно при Input 313 дава Output 9.

2 Likes

Ахааа, не съм си бил измислил добре решението. Ясно. Благодаря Иване!

2 Likes