Поиск числа Фибоначчи

Нужно найти число Фибоначчи n больше 100. Написал такую функцию:

PHP:
  1. public function main(int $n): string
  2. {
  3. if ($n < 0) {
  4. throw new \InvalidArgumentException();
  5. }
  6. $array = [0, 1];
  7. do {
  8. $array[] = $array[count($array) 1] + $array[count($array) 2];
  9. } while (ceil(log10($array[count($array) 1]) + 1) <= $n);
  10. return $array[count($array) 1];
  11. }

Но при проверке тестом не сходятся данные, подсказали что нужно реализовать через строки и сложением через столбик, но все равно не понимаю как реализовать, мб у кого есть идеи?

От модератора: для кода кнопка </>

 

Брр… Чтой-то сложно для Фиббоначи, логарифмы какие-то, массивы. Они гораздо проще программируются. Вот на сишке, без рекурсии:
https://russianblogs.com/article/1410874598/
На пыху переписать нетрудно

Если разрядности не будет хватать стандартных целых чисел, то, в зависимости от условий, есть уже в пыхе библиотека, которая «складывает в столбик» — bcmath. Если её использовать нельзя, ну придётся повозиться. Помнишь, как руками в столбик складывают? Можно то же самое переписать на пыху.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *