bospur
@bospur
Frontend dev

Фибоначчи без использования BigInt на javascript?

Здравствуйте, учу Js и столкнулся с такой задачкой. Нужно написать функцию которая принимает целое натуральное число от 500 до 25000 и находит число Фибоначчи(далее фиб) по порядковому номеру и все бы ничего но версия Node 8.1.3 и BigInt числа он не принимает. Так же нужно что бы функция получив число фиб разбивала его на интервалы по 25 цифр и выводила последний (он может быть меньше 25) а так же подсчитывала количество каждой цифры от 0 до 9 в числе и выводила большее и его количество. код вышел вод такой:
function aroundFib(n) {
  let a = 1n;
  let b = 1n;
  for (let i = 3; i <= n; i++) {
    let c = a + b;
    a = b;
    b = c;
  }
  let str = ''
  let obj = {
    0: 0,
    1: 0,
    2: 0,
    3: 0,
    4: 0,
    5: 0,
    6: 0,
    7: 0,
    8: 0,
    9: 0,
    }
  for(let number of String(b)){
    str += number;
    obj[number]++;
    if(str.length > 25){
      str = number
    }
  }
  let max = 0
  let count = 0;
  for(let [key, value] of Object.entries(obj)){
    if(value > max){
      max = value;
      count = key;
    }
  }
return `Last chunk ${str}; Max is ${max} for digit ${count}`
}


это код работает , но как сделать работу без BigInt понять совсем не могу( Пожалуйста, подскажите
p.s. прошу прощения за такие названия переменных
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Без BigInt - никак. Числа-то большие получаются. Если нет библиотеки, придется самостоятельно писать длинную арифметику. Просто храните цифры числа в массиве и длину рядом. Вам надо будет только сложение реализовывать, ну это делается столбиком одним циклом. Храните перенос с младших разрядов в переменной. Можно или исходники BigInt поискать, или вот тут посмотреть
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
22 мар. 2023, в 01:49
5000 руб./за проект
22 мар. 2023, в 01:01
3000 руб./за проект
22 мар. 2023, в 00:50
15000 руб./за проект