Help with code?

Изключваш случая, в който числото може да не е 0, но да е цяло, отрицателно. Ако сложиш в проверката вместо if (input[i] >0) - if (input[i] !=0), би трябвало решението ти да мине с макс точки.
Поздрави,

1 Like

Благодаря!

1 Like

С тази задача https://learn.telerikacademy.com/mod/page/view.php?id=5310 стигнах до тук https://jsfiddle.net/f24pvsq3/1/ и не знам какво да правя.

Ако може някакви насоки?

Не е зле да казваш името на задачата, защото на линка излизат всички.

Предполагам е задачата “Array Search
Ако трябва да се решава без методи на масиви може да е малко объркваща за начинаещ, затова ако искаш разгледай Array методите - с тяхна помощ ще се реши малко по-лесно. Иначе първото което ми идва на ум е да използваш “вмъкнат цикъл”, поне така му казваха едно време - а това е цикъл в цикъла. Нещо от типа на:

for (let i = 0; i < 100; i++) {

    for (let j = 0; j < 100; j++) {

    }

}

Тоест в случая, в първия цикъл търсиш желаното число, във втория обхождаш масива и виждаш, дали въпросното число фигурира в него.

Или малко по-нагледно:

//имаме масив [1,1,3,4]
// създаваме и един празен в който да слагаме липсващите числа
почваш да въртиш първия цикъл от 1 до 4,
втория въртиш от 0 до 3 /индексите на масива/
// първи цикъл -> търсим 1
вътрешния цикъл обхожда масива и го намира, значи имаме такова число и не
правим нищо;
// втори цикъл -> търсим 2
вътрешния цикъл обхожда масива и НЕ го намира, значи това число липсва
и го добавяш в празния масив
// трети цикъл -> търсим 3
вътрешния цикъл обхожда масива и го намира, значи имаме такова число и не
правим нищо;
// и т. н.

Това е общата логика, за детайлите опитай да се досетиш сам.

1 Like

Благодаря отново. Този https://jsfiddle.net/9exbfr2u/1/ код на задача Convert Degrees, Arrays не работи. Не виждам къде греша?

Не виждам никакъв проблем.
Провери ли да смениш console.log с print? :slight_smile:

1 Like

С print работи :slightly_smiling_face:. Забравям, че в Телерик се изисква да е така. Пиша кодове и за другаде и затова се бъркам.

За Array Search направих това https://jsfiddle.net/89sb5Ltj/1/. Не можах да измисля nested loop варианта. indexOf е перфектен за такива случаи.

Задачата е Crooked Digits, моя код https://pastebin.com/nDY0rLfV. Моля за някакви насоки?

Здравей,
в условието на задачата пише, че полученото число под формата на стринг може да бъде както цяло, така и число с цифри след десетичната запетая, която в този случай е символа ‘.’ . Ти проверяваш само първия символ от входа дали е ‘-’ и пропуснатия кейс за ‘.’ дава грешни отговори. Eто една доработка на твоя код, чрез която задачата минава, опитай се първо да направиш проверката сам: https://pastebin.com/1jJTaTjV . Проследи console.log-a на различните места. Също така помисли дали е необходимо да записваш числата в масив или можеш да работиш направо върху входния стринг.
Поздрави

1 Like

Това ли имаш предвид https://jsfiddle.net/zg7x6afu/ да работя направо върху входния стринг?

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

1 Like

Ок. Интересно ми е как това работи if (!isNaN(inputOne[i])), при условие че inputOne[i] е стрингов елемент, не номер. Как isNaN преценя, че даден елемент не е NaN или e NaN?
Аз разбирам как кода работи, но как преценя дали стрингов елемент е номер или не е номер?

isNaN първо конвертира стойността в число и чак след това сравнява, следователто стринга ‘7’ става числото 7. В JS има един термин type coercion: https://medium.com/developers-arena/type-coercion-in-javascript-c973b369b272 . Следващия линк e документацията на isNaN функцията: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN . След прочит би трябвало нещата малко да се поизяснят.

1 Like

Благодаря.

1 Like

Как да взема всички елементи от такъв масив let input = [‘132’,‘123’]; ?

Няма как да ползвам името на масива поради очевидни причини, но как без дължината на input масива да вкарам елементите в нов масив?

Задачата е Balanced numbers, направих това https://jsfiddle.net/sxv9om0u/ . Дава ми 20т. и ми изписва Time Limit Exceeded, нещо което ми се случи и на изпита :slightly_smiling_face:.

Съвети и мнения какво да направя и къде греша?

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

1 Like

Благодаря.

Някой може ли да ми разясни какво значат удивителните в тази формула S = 1 + 1!/x + 2!/x2 + … + N!/xN ?

Здравей,

Означава факториел.

Поздрави,

1 Like

Може ли разяснения за задача Odd and Even Product за For Loops. Аз написах това https://jsfiddle.net/tL5gd139/1/ , но нещо основно е сбъркано. Не съм сигурен, че разбирам задачата правилно.