sloker
Новичок
Ну никак не могу написать счетчик такого вида (обязательно с помощью рекурсии):
001
002
003
010
011
012
013
100
101
102
103
110
111
112
113
Как видно на каждое число свое ограничение. Получается массив array(2, 1, 3) с максимальными значениями.
Обязательно нужна рекурсия вместо:
for ($i = ...) {
for ($j = ...) {
for ($k = ...) {
...
}
}
}
Вот код (но он неправильный, поэтому и обращаюсь за помощью):
001
002
003
010
011
012
013
100
101
102
103
110
111
112
113
Как видно на каждое число свое ограничение. Получается массив array(2, 1, 3) с максимальными значениями.
Обязательно нужна рекурсия вместо:
for ($i = ...) {
for ($j = ...) {
for ($k = ...) {
...
}
}
}
Вот код (но он неправильный, поэтому и обращаюсь за помощью):
PHP:
<?php
function timer($limit, $mas, $number) {
$fromLimit = $limit[$number];
for ($i = 0; $i < $fromLimit + 1; $i++) {
$masCopy = $mas;
$masCopy[$number] = $i;
echo "number = $number, ";
echo "i = $i, ";
echo "fromLimit = $fromLimit\n";
if ($i <= $fromLimit) {
echo implode(", ", $masCopy)."\n";
} else {
echo "Рекурсия\n";
echo implode(", ", $masCopy)."\n";
timer($limit, $mas, $number - 1);
}
}
return;
}
timer(array(2, 1, 3), array(0, 0, 0), 2);