Задать вопрос
@vasiaduman

Почему скрипт неправильно проводит арифметическую операцию?

У меня есть следующий код:

function calculate(z, n, inputNumber) {
    // Преобразование строки в число
    let B = Number(z);
  
    // Возведение в квадрат
    B = B * B;
  
    // Умножение на n
    B = B * Number(n);
  
    // Взятие по модулю 0x6fed4 (458964)
    const MOD = 0x6fed4; // 458964
    B = B % MOD;
  
    // Добавление входящего числа
    B = B + inputNumber;
  
    return B;
}
  
// Пример использования
const z = 92547;
const n = 70624;
const inputNumber = 324208;

const result = calculate(z, n, inputNumber);
console.log(`Результат: ${result}`); // Ожидается 324541

Я ожидаю результат: 324541.
А вывод: 648416.
Что исправить?
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Во-первых, 0x6fed4 === 458452 !== 458964

Во-вторых:
(92547 * 92547) * 70624 === 604890831688416
604890831688416 % 0x6fed4 === 324208
324208 + 324208 = 648416

А уж почему вы рассчитываете получить что-то другое - вопрос к вам. Программа делает не то, что вы хотите, а то, что вы в ней написали.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы