Здравствуйте! Объясните пожалуйста:
1) в чем разница между обращением к переменной по её идентификатору и объявление переменной глобальной, ведь в обоих случаях после выполнения функции, изменения происходят в ячейке переменной;
2) всё никак не могу понять Рекурсию, как функция может вызвать сама себя.
Заранее спасибо!
31. Nevada - 23 Августа, 2013 - 12:55:48 - перейти к сообщению
32. pashtetiprit - 30 Августа, 2013 - 17:51:15 - перейти к сообщению
не пойму как работает этот пример, распишите пожалуйста что происходит при
return fib($n - 1, $pre + $pre_pre, $pre);
<?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);
?>
return fib($n - 1, $pre + $pre_pre, $pre);
<?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);
?>
33. NoPaper - 30 Августа, 2013 - 20:42:52 - перейти к сообщению
pashtetiprit пишет:
не пойму как работает этот пример, распишите пожалуйста что происходит при
Функция fib рекурсивно вызывает себя.
http://clck[dot]ru/8ofFtt
34. donhu - 12 Июля, 2017 - 17:13:13 - перейти к сообщению
это все интересно, и даже я сразу разобралась в командах