Задача Парала за JavaScript

preparation

#1

Здравейте,

Имам проблем със задача Парола. Пробвам да я реша със JavaScript и получавам верните решения на двата примера но във judge минават само 4 теста.

Кода ми е супер елементарен но немога да си намеря грешката. Предполагам е логическа. Някакви идеи?

let arr = gets().split(" "); //масив за да мога да си взема двете числа

let N = (arr[0]).split("").reverse().join(""); // reversed N

let K = arr[1];

let divide = (Number(N) / Number(K));

let remainder = (Number(N) % Number(K));

print((divide + remainder).toFixed(0))


#2

Здравей колега,

може ли да pastnesh целия код.

Ако е това целия код, според мен пропускаш първа точка:
Разменят се първата и шестата, втората и петата, третата и четвъртата цифри на N.

Поздрави,
Михаил


#3

Колега,
не съм специалист на JS , но според мен най - вероятно се чупи или :

  1. при LINQ ( reverse) … не съм сигурен ако числото ти е например 111100 … дали няма да го обърне като стринг 001111 и съответно долу когато го ползваш като число да гърми… аз съм го обръщал с уайл цикъл и минава 100 от 100 … ето така :

while (a != 0)
{
int digit = a % 10;
reverse = (reverse * 10) + digit;
a = a / 10;
}

  1. другия вариант ако не стане с първото , пробвай да си направиш отделна променлива за вече обърнатото число (reversedN) и работи с нея надолу …

П.С
можеш да се ориентираш по типа грешка в ДЖЪЖД ако е IR (Invalid return) най - вероятно програмата ти е хвърлила exception и е по - скоро точка 1 , ако е WA (wrong answer) , по - вероятно точка 2 .

Поздрави и успех :slight_smile:


#4

Здравей, по условие имаш следното нещо:
“Пресмятат се частното и остатъка при деление на новополученото число на цялото положително число K”
Т.е. променливата divide да ти бъде така let divide = Math.floor(Number(N) / Number(K)) защото ние си нямаме целочислено делене by default :slight_smile:


#5

Мерси за бързите отговори!!! Нямаше да се сетя сам за решението.

Задачата мина като ползвах let divide = Math.floor(Number(N) / Number(K)) както предложи nikolayneykov92.

Бях малко изненадан че мина със Math.floor() но не минаваше със .toFixed(0) както и да опитвах.Явно не иска да закръгляме на цяло число а само да вземем цялото число от резултата.

console.log(Math.floor(99.8)); // returns 99
console.log((99.8).toFixed(0)); // returns 100

Мерси пак! Беше доста полезно!


#6

@nikolayneykov92 Супер, както казах съм далеч от специалист в JS, беше полезно да науча че делението там не е цялочислено както в С# :wink: