{% else-1 %}
kvils * 14.41
(5 мар 2015, 18:01) (0/0) [0]
VTR1m, спасибо))
kvils * 14.41
(4 мар 2015, 23:55) (0/0) [0]
Есть код:
[code]<?PHP
// $pre и $pre_pre, как и в тот раз - предыдущий и предпредыдущий элемент.
// $n номер элемента, который мы ищем, НО реально смысл в этой переменной несколько другой.
// Она хранит в себе количество элементов, которое осталось посчитать
// Считать сумму начинаем с 3го элемента.
function fib($n, $pre = 1, $pre_pre = 0)
{
if ($n == 1) return 1;
if ($n < 1) return false;
if ($n == 2) // начинали с 3го, поэтому выходим, когда осталось посчитать два.
return $pre;

return fib($n - 1, $pre + $pre_pre, $pre);
}


echo fib(5);
?>
[/code]
если мы в fib(5) вносим 5 выводит 3, если же fib(10), если 10 выводит 34, вот я взял листик карандашик и как бы не считал но 34 у меня не получается. В чем суть? Хочу понять суть работы данного кода, обчислить то что считает он на листику.Подскажите как это сделать?
Добавлено 05.03.15 в 03:08:09:
Ответ: 0,1,1,2,3,5,8,13,21,34 для fib(10)
0,1,1,2,3 для fib(5)
Додаются два последних числа, 0 и 1 первые две цифры которые додаются, их сумма равна 1 таким образом у нас уже три числа: 0,1,1(0+1). Как известно нам два последних числа мы суммируем в результате две единицы нам дали двойку и уже у нас четыре числа: 0,1,1,2, продолжаем в том же духе так мы получим числа 3, 5, 8, 13, 21, 34, 55(ну это уже если бы у нас было fib(11) ).
  • 1 из 1