[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ряд фибоначчи
Posia
Доброго времени суток, господа, решил я сделать функцию, которая выдавала бы по запросу порядкового номера ряда фибоначчи нужное число... и затупил...
Вот код:
 function $fib ($in) {
if ($in==1) { return 0;}
elseif ($in==2) { return 1;}
elseif ($in==3) { return 1;}
else {

$a=1;
$b=1;

for ($i = 3; $i <= $in; $i++)
{
$res = $a + $b;
$a = $b;
$b = $res;
}
return $res;
}
}

echo " = ".$fib(5);

Всё проверил раз двадцать, вроде как всё правильно, но!
Вот в этой строчке:
 function $fib ($in) {

оно мне выдаёт ошибку: syntax error, unexpected T_VARIABLE, expecting T_STRING
Я в тупике, помогите кому не лень пожалуйста!



Спустя 8 минут, 41 секунда (20.10.2010 - 15:28) Michael написал(а):
function fib

- убери знак доллара из названия функции

Спустя 1 минута, 39 секунд (20.10.2010 - 15:30) Posia написал(а):
Спасибо тебе огромное, добрый человек!

Спустя 8 минут, 28 секунд (20.10.2010 - 15:38) Michael написал(а):
Кстати насчет ряда Фибоначчи: подумай как это сделать по другому, чем ты делаешь - через рекурсию.

Спустя 14 минут, 55 секунд (20.10.2010 - 15:53) Posia написал(а):
Спасибо за задачку, я как раз разбираюсь с ООП и с php в частности, обещаю подумать : )

Спустя 1 день, 19 часов, 12 минут, 6 секунд (22.10.2010 - 11:05) Posia написал(а):
Сдаюсь, как это сделать при помощи рекурсии? У меня получилось вот что, но оно не работает =(
 function fib ($in) {
if ($in==1) { return 0;}
elseif ($in==2) { return 1;}
elseif ($in==3) { return 1;}
else {return $res = fib1 ($in, 1, 1);}

}

function fib1 ($n, $s, $p) {

if ($n<=1) {return $r; }
else {$r=fib1 ($n-l, $s=$s+$p, $a=$s );}

}



echo " = ".$q=fib (5);

Спустя 5 минут, 23 секунды (22.10.2010 - 11:10) Michael написал(а):
Там должно быть что то вроде:
function fib($n) {
if ($n == 1) return 0;
elseif ($n == 2) return 1;
else return fib($n-1) + fib($n-2);
}

Спустя 8 минут, 39 секунд (22.10.2010 - 11:19) Posia написал(а):
Здорово, но где я ошибся в своём коде?

Спустя 9 минут, 44 секунды (22.10.2010 - 11:29) Michael написал(а):
Цитата (Posia @ 22.10.2010 - 10:19)
Здорово, но где я ошибся в своём коде?

ты не делаешь return $r; в else ветке if-а
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.