Модульный калькулятор JavaScript

Начну с того, что начал решать задачи с этого сайта --> https://www.codeabbey.com/ Сейчас, делаю вот эту задачу https://www.codeabbey.com/index/task_view/modular-calculator

И выходит, что ответы, который выдает сайт не сходиться с моими, но если взять пример( с задания ), то мое решение верно.

Тестовое задание вот такое

{
75
+ 9
+ 7
* 578
* 2
+ 553
+ 71
+ 297
+ 84
+ 2199
+ 8
+ 57
* 65
* 36
* 6
* 464
* 9002
+ 5
* 1
+ 78
* 4
+ 90
+ 3083
+ 6825
* 23
+ 1090
* 81
+ 7469
* 38
* 431
* 1622
* 3576
+ 9530
* 1
+ 960
* 1
* 1
+ 7
+ 2
+ 4
* 91
* 37
* 5
* 61
+ 698
* 8221
+ 4246
* 651
+ 5
* 960
% 6428

Мой ответ 4620
Ответ с сайта 1480
}

Вот мой код:


let input = document.querySelector('.str'),
    btn = document.querySelector('.btn');

btn.addEventListener('click', function(){
    let str = input.value.split(' '),
        num = +str[0],
        ans = 0;
    for (let i = 0; i < str.length - 1 ; i++) {
       switch(str[i]){
            
           case ('+'): num = num + Number(str[i + 1]);
               break; 
            case ('*'): num = num * Number(str[i + 1]);
               break; 
            case ('%'): ans = num % Number(str[i + 1]);
               break; 
       }

    }
      console.log(num) // Вывыоди полное число после всех преобразований, кроме модуля
      console.log(ans) // Модуль всех преобразований

})

Помоги плиз не понимаю или я тупой(да) или ответы с сайта не правильные.


Ответы (1 шт):

Автор решения: Alexander Lonberg

На сайте все правильно

const data = `75
  + 9
  + 7
  * 578
  * 2
  + 553
  + 71
  + 297
  + 84
  + 2199
  + 8
  + 57
  * 65
  * 36
  * 6
  * 464
  * 9002
  + 5
  * 1
  + 78
  * 4
  + 90
  + 3083
  + 6825
  * 23
  + 1090
  * 81
  + 7469
  * 38
  * 431
  * 1622
  * 3576
  + 9530
  * 1
  + 960
  * 1
  * 1
  + 7
  + 2
  + 4
  * 91
  * 37
  * 5
  * 61
  + 698
  * 8221
  + 4246
  * 651
  + 5
  * 960
  % 6428`

void function () {
  const a = data.split(/\n/g).map((e) => e.trim().split(/\s/))
  let initValue = BigInt(a.splice(0, 1)[0])
  for (let [o, v] of a) {
    initValue = new Function('initValue', 'v', `return initValue ${o}= v`)(initValue, BigInt(v))
  }
  console.log(initValue.toString())
}()

→ Ссылка