[英]How can I make this function work with recursion?
输出:
3
3 4
3 4 5
3 4 5 6
3 4 5 6 7
3 4 5 6 7 8
function Triangle ($begin, $end) {
if ($begin < 0 || $end < 0) {
return;
}
if ($begin == $end) {
return $a;
}
else {
// non recursive
for ($i = 1; $i <= $end; $i++) {
for ($j = $begin; $j <= $i; $j++) {
echo $j . " ";
}
echo "<br>";
}
}
}
这是我到目前为止所做的。
这是一种方式:
function triangle ($begin, $end, $row = 1) {
//stop when we've printed up to end
if($end - $begin + 1 < $row) return;
//let's start at the beginning :)
for($i = 0; $i < $row; $i++){
//the row number increments each time so we can keep adding.
echo ($begin + $i)." ";
}
echo "<br>";
//now recurse...
triangle($begin, $end, $row + 1);
}
用法:
triangle(3,9);
输出:
3
3 4
3 4 5
3 4 5 6
3 4 5 6 7
3 4 5 6 7 8
3 4 5 6 7 8 9
这应该适合你:
(这里我刚刚添加了变量步骤,它定义了从$begin
到$end
$step
,如果$begin
+ $step
== $end
则函数完成。如果不是,则从$begin
并使X步骤为只要它没有到达终点我再次调用该函数,更多步骤)
<?php
function Triangle($begin, $end, $step = 0) {
for($count = $begin; $count <= ($begin+$step); $count++)
echo "$count ";
echo "<br />";
if(($begin + $step) == $end)
return;
else
Triangle($begin, $end, ++$step);
}
Triangle(3, 8);
?>
输出:
3
3 4
3 4 5
3 4 5 6
3 4 5 6 7
3 4 5 6 7 8
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.