Telerik Alpha - JS Mock Exam: Counting


0

Здравейте, 

днес тръгнах да решавам първата задача от вчерашния JS Mock exam и,  въпреки че условието е на пръв поглед доста лесно, се занимавам от 1 час да разбера защо получавам 50%, въпреки че резултата ми напълно съвпада с output-a  даден в задачата . - [Линк към задачата в BgCoder]

Тук е кодът:

function solve(args){

let number = +args[0];

for (let i = 1; i <= 10; i += 1) {  console.log(number + i)

}

}

Нямам много опит със системата и наистина не мога да намеря къде ми е грешката в случая и защо получавам само 50 точки. Предполагам има някаква уловка, която не схващам. :) 

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

п.п. когато копирам snippet-а, форматирането изглежда окей, но като запазя поста и се разваля. надявам се да е разбираемо.




Отговори



0
Здравей, в условието ти е дадено, че N може да е дълъг до 1000 символа, тоест ако го обработваш като число ти overflow-ва. Пробвай да го оставиш на стринг и да следиш и променяш само последните 2 символа.

от simzzz (65 точки)


0

Мерси за бързия отговор!

Пробвах така, но отново стигам до момент, в който съм в задънена улица. успявам да променям последните 1-2 числа, но става сложно, когато имам Input 9998 примерно. Тогава трябва целия стринг да се промени и не ми идват наум никакви начини за това, освен превръщането в число. Естествено това обръщане в число overflow-ва при много голям Input.

Имаш ли някакви други идеи, при които хем успявам да извърша правилно събирането, хем да запазя input-a като стринг, за да не overflow-не?



1

 Здравей,

Може да пробваш да симулираш събирането на числа което се преподава в 1-2 клас :).

Всяка цифра ти е елемент от масив (можеш спокойно да си ги пазиш като int), след което почваш отзад до началото и събираш с прехвърляне.

Примерно 9 + 9 = 18 , записваш 8 и прехвърляш 1. Лесно можеш да ги вземеш с деление по модул и целочислено деление на 10. В крайна сметка задачата се свежда до събиране на 2 масива с числа.

var quotient = Math.floor(y/x); var remainder = y % x;

Пример:

1 1  1  0        -> remainder

0 9  9  9        -> arr num1

0  0  0 9        -> arr num2

1 0  0  8        -> result


от ktsvetanov (705 точки)



0

Опитай с масив, с цикъл проверяваш дали елемента от масива е 9 . При мен така се получи.


от DSD_KA (55 точки)