Сгрешен тест-Game

Здравейте,
Днес се опитах да реша задачите от вторият пробен изпит,но още на първата задача системата ми заби 0/100,въпреки че според мен всичко беше наред.
Има много спорни моменти относно условието на задачата,но според мен има и сгрешен тест.
Ето и моето решение:
using System;

namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
int number = int.Parse(Console.ReadLine());
int c = number % 10;
int b = (number / 10) % 10;
int a = number / 100;
int result1 = (a + b) + c;
int result2 = (a + b) * c;
int result3 = a * b + c;
int result4 = a * b * c;
int result5 = Math.Max(result1, result2);
int result6 = Math.Max(result3, result4);
int result = Math.Max(result5, result6);
Console.WriteLine($"{result}");
}
}
}

При вход 185 имаме (1+8)*5=45.

Колега, помисли дали всички възможни комбибации са 4? Първото което ми дойде на ум е -
а*(b+c).
т.е. при вход 581 дали пак ще даде разултат 45?

Както съм писал в предният коментар условието на задачата не е ясно .
Такива варианти може да се разглеждат в кръжок по математика и информатика,но не и да се дават на изпит.
Няма как при вход 185 верният отговор да е 41.

Не трябва да използваш скоби, вариантите са abc, a+b+c, ab+c and a+bc. Само с тези проверки би трябвало да даде 100/100.

1+8*5 е 41

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

1 Like

Да,това е верният и логичен отговор.

1 Like

Здравейте на всички! Опитах се да реша тази задача по различен начин и ми я приема в Системата - дава ви 100 точки, но странното е че аз открих случай в който моето решение дава грешен резултат - ако тествам с числото 212. Моят резултат е 4, а верният отговор би трябвало да е 5, наистина много странно че минава моето решение, ако може и администраторите да погледнат :slight_smile: Ето кодът ми

import java.util.Scanner;
import java.util.ArrayList;
import java.util.*;

public class Game {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int maxResult = 0;
while (true) {
int input = sc.nextInt();
String numStr = Integer.toString(input);
char[] charNum = numStr.toCharArray();
int[] numInt = new int[numStr.length()];
int sum = 0;
for (int i = 0; i < numStr.length(); i++) {
numInt[i] = (int) charNum[i] - 48;

                }

                sum = numInt[2] + numInt[1] + numInt[0];
                if (numInt[0] > 1 && numInt[1] >=1 && numInt[2] > 1) {
                    maxResult = numInt[0] * numInt[1] * numInt[2];
                } else if (numInt[0] > 1 && numInt[1] > 1 && (numInt[2] == 1 || numInt[2] == 0)) {
                    maxResult = numInt[0] * numInt[1] + numInt[2];
                } else if (numInt[0] > 1 && numInt[1] == 0 && numInt[2] > 1) {
                    maxResult = sum;;
                } else if ((numInt[0] == 1 ||numInt[0]==0) && numInt[1] > 1 && numInt[2] > 1) {
                    maxResult = numInt[0]+numInt[2] * numInt[1];
                } else if (numInt[0] > 1 && (numInt[1] == 1 || numInt[1] == 0) && (numInt[2] == 1 || numInt[2] == 0)) {
                    maxResult = sum;
                } else if ((numInt[0] == 1 ||numInt[0]==0) && (numInt[1] == 1 || numInt[1] == 0) && (numInt[2] == 1 || numInt[2] == 0)) {
                    maxResult = sum;
                } else {
                    break;
                }

                System.out.println(maxResult);
                break;
            }
        }
    }

Scanner scanner = new Scanner(System.in);

    int num = scanner.nextInt();

    int num1 = num % 10;
    num /= 10 ;
    int num2 = num % 10;
    num /= 10 ;

    int res1 = num + num2 + num1;
    int res2 = num * num2 * num1;
    int res3 = num * num2 + num1;
    int res4 = num + num2 * num1;

    int max = res1 > res2 ? res1 : res2;
    max = max > res3 ? max : res3;
    max = max > res4 ? max : res4;

    System.out.println(max);