Balanced Numbers


#1

Привет Колеги,
малко помощ за задача Balanced Numbers- Mock Exam-1.
Не се сещам как да я подкарам…


#2

Здравей колега,
имаме няколко условия, които трябва да вземем под внимание:

1.Създаваме променлива в която ще пазим сумата на балансираните числа.
2. По условие не знаем колко числа ще четем, значи ще ни трябва while или do while циъкл.
3. Вътре в цикъла, четем трицифрени числа (тук имаме поне две опции, да ги четем като string или като int):
Взимаме първият и последният индекс, парсваме ги към int, сумираме ги и ги сравняваме дали са равни на средният индекс.
Ако са равни увеличаваме сумата със стойността на даденото число (може да го пазим в отделна променлива или както ни е удобно ).

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

Успех.


#3

Здравейте,

Опитвам се да тествам локално кода си, използвайки code snippet-а от judge.

Виждам в задачата примерен input, но както и да го подам след “const test”, не успявам да получа правилен отговор, дори с верните решения.

Дали някой може да даде съвет как да въведа input данните, за да тествам някои сценарии?

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


#4

Здравей Колежке,

Ако може изпрати кода си, да видим защо се чупи.

Имаш поне два варианта:

  1. Правим do-while (гарантирано влизаме поне веднъж във циъкл), четем число/а и правим проверка докато не стигнем до
    "You should stop when an unbalanced number is given.". Тогава излизаме от цикъла и принтираме резултата.

2.Правим While{} цикъл, в момента в който числото което сме прочели не е балансирано излизаме и принтираме сумата.

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


#5

Взех уж правилно решение на готово, за да тествам локално при мен. По идея трябва да получа 132, но резултатът при мен е 0…
Стигнах до извода, че може би не подавам правилно Input-а при const test, но както и да го поправя, не получавам правилен резултат.

Сигурно е нещо елементатно, което пропускам, но не виждам вече втори ден какво е.

Благодаря за съдействието!

//testing locally
const getGets = (arr) => {
let index = 0;

return () => {
    const toReturn = arr[index];
    index += 1;
    return toReturn;
};

};
// this is the test
const test =
[‘123’,
‘132’];

const gets = this.gets || getGets(test);
const print = this.print || console.log;

//snippet taken from https://judge.telerikacademy.com/problem/15balancednumbers/editorial

let sum = 0;

while (true) {
let [x, y, z] = gets();
if (+x + +z !== +y) {
break;
}
sum += +(x + y + z);
}

print(sum);