olimpset
13.02.2013 - 23:46
Рекурсия, не могу понять.
<?php
function fun($a)
{
if ($a==1)
return 1;
else
return $a*fun($a-1);
}
echo fun(6);
?>
ну вот 6 в echo fun(6);
смотрю в браузер и число 720, откуда оно взялось ?
наверное вот return $a*fun($a-1);, но я считал по такой формуле, то не такие числа. Так откуда такое большое число?
SerginhoLD
14.02.2013 - 00:03
Цитата (olimpset @ 13.02.2013 - 19:46) |
Рекурсия, не могу понять. <?php function fun($a) { if ($a==1) return 1; else return $a*fun($a-1); } echo fun(6);
?> ну вот 6 в echo fun(6); смотрю в браузер и число 720, откуда оно взялось ?
наверное вот return $a*fun($a-1);, но я считал по такой формуле, то не такие числа. Так откуда такое большое число?
|
6*5*4*3*2*1 = 720
математика, рекурсия, факториал
_____________
"internet explorer всех правильней отображает страницы" ©
Игорь_Vasinsky
14.02.2013 - 00:06
Функция будет работать рекурсивно, пока её аргумент (6) не станет ровняться 1
и каждый раз будет проиcходить return $a*fun($a-1);
т.е. функция будет запускаться 5 раз
ты вызвал её с аргументом равным 6 - а она на автомате отработает 6,5,4,3,2
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker