|
|
|
| Объясните, пожалуйста, подробнее действия этого примера.
<?
function degree($x,$y)
{
if($y)
{
return $x*degree($x,$y-1); // тут не понятно, какой процесс ? что на что умножается ?
}
return 1;
}
echo(degree(2,4)); // выводит 16
?>
За ранее спасибо! | |
|
|
|
|
|
|
|
для: vakum1
(31.03.2008 в 14:39)
| | ну ты вызываешь функцию degree($x,$y),пока $y истина тоесть 4 раза, каждый раз возвращаемый результат
умножается на 2 тоесть (2*(2*(2*(2*1)))) получается 16, скобки для наглядности проставил,
тоесть пять раз просто последний раз она возвращает 1 | |
|
|
|
|
|
|
|
для: вит
(31.03.2008 в 17:00)
| | return $x* - задаёт умножение в функции, degree($x - значение, которое должно умножаться само на себя,$y-1 - число раз);
Правильно понимаю ?
$y считает 3 2 1 0 или 4 3 2 1 ?
Откуда взялась единица ? И для чего ? | |
|
|
|
|
|
|
|
для: vakum1
(31.03.2008 в 18:58)
| | Так понятнее?
function degree(2, 4)
{
return 2 * function degree(2, 3)
{
return 2 * function degree(2, 2)
{
return 2 * function degree(2, 1)
{
return 2 * function degree(2, 0)
{
return 1;
}
}
}
}
}
|
P.S. Это не PHP-код. | |
|
|
|
|
|
|
|
для: Atheist
(31.03.2008 в 19:09)
| | if($y) return 2*degree(2,4-1);
2* умножается на 2 в скобочках или двойка в скобках умножается на саму себя ?
if($y) return 2*degree(2,4-1); результат 4
if($y) return 2*degree(2,4-2); результат 4
if($y) return 2*degree(2,4-3); результат 4
if($y) return 2*degree(2,4-4); результат 4
Как четыре результата слаживаются ? Автоматически ? | |
|
|
|