Ответов: 30 Просмотров: 379
|
Добрый день,
Проходил сегодня собеседование на должность ПХП программиста, и не смог справиться с одним заданием, и теперь мой моск не может выкинуть эту задачку из головы.
Итак дана функция:
Как видно тут рекурсия и очень убийственная, настолько что даже при $n=3, апачь ругаеться благим матом что нехватает места в оперативке.
Задание переделать алгоритм так чтобы она работала при q(77)
ПС Остольные вопросы были тревиальными, вывести числа до 100 что деляться на 3 и 5, переделать говнокод в ООП стиль, реализовть паттерн singelton и составить пачку мускл запросов.
UPDATE
ответ найден:
PHP:
скопировать код в буфер обмена
<?PHP function q($n){ $n--; $array[0]=1; $array[1]=1; for ($i=2; $i<=$n; $i++){ $array[$i] = $array[$i-$array[$i-1]]+$array[$i-$array[$i-2]]; //echo ($i+1).":".$array[$i]."<br>"; } echo "Itog:".$array[$n]; } q(77); ?>
|