Грешка в задача

Здравейте,
от вчера се опитвам да реша задачата в Mock exam 2 - game (javascript). Смятам че в възможно да има грешка в системата, това ми е кода:

function largestPossibleNumber(num) {
let splitNum = num.split(’’);
let ans = 1;
let adder = 0;
for (let i = 0; i < splitNum.length; i++) {
if (splitNum[i] == 1) {
adder++;
} else if (splitNum[i] == 0) {
splitNum[i] = 1;
}
ans *= splitNum[i];
}
if (ans == 1) {
ans = 0;
}
ans += adder;
print(ans);
}

largestPossibleNumber(gets());

Не минава 2-ри, 4-ти и 5-ти тест където моя отговор е 73, 17, 40.
Мислех че грешката е при мен но написах тест който пробва всички трицифрени числа които дават 3те стойности и получих това като резултат следните комбинации:

Input - Ans

128 - 17
144 - 17
182 - 17
189 - 73
198 - 73
218 - 17
245 - 40
254 - 40
281 - 17
414 - 17
425 - 40
441 - 17
452 - 40
508 - 40
524 - 40
542 - 40
580 - 40
805 - 40
812 - 17
819 - 73
821 - 17
850 - 40
891 - 73
918 - 73
981 - 73

Всяка от тези комбинации смятам че е правилна. Ако някой намери грешка моля да я посочи.

Здравей,

Прочети внимателно условието. Пропускаш нещо.

Мисля че пак пропускам нещо, това което разбирам е че:

  • има 3-цифрено число
  • трябва да се добавят знаци (+ или *) между цифрите на това число
  • трябва да се върне възможно най-голямото число

Моето решение е:

  • да слагам + на 1 и 0
  • да слагам * на всяко друго число

Не съм сигурен, може да изпускам нещо съществено, но не виждам нищо.

Малко повече прави твоето решение, ще дам за пример някои от резултатите:

918 - 73
981 - 73

Един от тези резултати е правилен, другият не е. За 918 няма как да получиш 73, ако логиката е 8 * 9 + 1, напомням, че числата трябва да запазят реда си при извършването на операциите.

1 Like