JavaScript

Здравейте,
искам да попитам как се принтира “закръгляне до най-близко цяло число”, както и как се принтира “повдигане на степен”?

Здравей.
Разгледай Math.


По-конкретно:


Ако имаш въпроси, пиши.
Самото принтиране тук https://judge.telerikacademy.com/ става с print();
1 Like

Благодаря,

Благодаря! Разгледах ги, но в самият синтаксис бъркам някъде. Връща ми отговор “IR”…
https://pastebin.com/bnB4RTdR

Когато използваш вградени built-in обекти на езика, те винаги започват с главна буква. Тоест Math.round и math.round са напълно различни неща и от там идва грешката, погледни линка от долу и ще видиш разликите вляво е твоя код, вдясно е оправения код.

Също така, в задачата не се изисква закръгляне до най-близкото число, а се изисква да го закръглиш до най-ниското такова. Ако имаш някакво число ,например 4.6, и използваш Math.round(4.6) ще ти го закръгли до най-близкото цяло число, което е 5. Това, от което имаш нужда е Math.floor() метода и ще ти закръгли числото до най-ниското такова.

https://www.diffchecker.com/M1xiAcT0

1 Like

Здравей,
никаква идея нямам как да реша последната задача от уъркшоп-а- “Sum Digits”.
Как се взимат отделните числа, за да ги събера след това?

2 Likes

Здравей.
Можеш да вземеш последната цифра на дадено число с % оператора.
Например number = 123;
print(number % 10); // 3

Здравей,
условието е да се чете 4-цифрено число, след което да се съберат отделните цифри, напр.:
1234 = 1+2+3+4…и не знам как се взимат отделните цифри, за да ги събера.

Привет,

Колегата по-горе ти е дал доста добър hint.
Разгледай по-подробно оператора за модулно деление (%).
При модулно делене на 10, резултатът е последната цифра от дадено число.
1234 % 10 = 4
123 % 10 = 3
12 % 10 = 2
1 % 10 = 1
След като си вземеш последната цифра, помисли как с деление и закръгляне можеш да върнеш числото без нея. (т.е. от 1234, как би могъл да вземеш 123).

Успех.

3 Likes

Привет,
ето това е условието на задачата:
Write a program that reads a four-digit number and displays the sum of its digits

  • 1213 = 1 + 2 + 1 + 3 = 7
  • 2346 = 2 + 3 + 4 + 6 = 15
    Не знам синтаксисът, за да го направя :slight_smile:

Привет,
Условието на задачата е ясно.

  1. С +gets() си вземаш числото и си го запазваш в променлива, примерно number.
  2. След това по начина, по който ти описах по-горе си вземаш последната цифра и си я запазваш в променлива, примерно fourthDigit. Цък.
  3. След това помисли как да “премахнеш” тази последна цифра от number - с деление на кое число - xx и закръгляне. Разгледай методите Math.floor(), Math.round() и Math.ceil() и избери най-подходящия. (пример: number = Math.floor/round/ceil(number / xx) )
  4. След като number е вече трицифрено число повтаряш стъпка 2 и 3 докато си вземеш thirdDigit, secondDigit и firstDigit.
  5. Събираш тези цифри и запаметяваш резултата в променлива, примерно sum.
  6. С print() изкарваш sum.
4 Likes

Благодаря ти много!

1 Like

Здравейте Колеги,

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

Оператора %, придружен с една десятка “10”, на жаргон “процентно делене”, ти маха последната цифра, например:
ако разделиш 123%10, ще получиш последната цифра - в случая 3, и ще ти хартиса 12,
после ако повториш 12%10, ще вземеш 2, ще остане 1
Ако направиш а=123;
а%10 можеш да го извършиш а.length-1 пъти, т.е. 2 пъти за 3-цифрено число
Сега по-голяма каша ли е :slight_smile:

1 Like

Правя задачата във VSCode и всичко е точно, но когато я постна в системата, ми дава 20 точки и грешен отговор. Къде греша ? https://pastebin.com/LLS0Kcuh

на всякъде, където ти е input трябва да ти е inputOne, в judge нямаш такова нещо като input и там задачата ти забива.

Алтернативно, ако някой го измъчва модулното делене, винаги може да ползвате String.charAt()

let entryData = gets();
let firstDigit = Number( entryData.charAt(0) )
etc…

1 Like

Вече поправих задачата, но забравих да си махна коментара. Благодаря все пак. :slight_smile: