这个循环如何写? 12345654321 123454321 1234321 12321 121 1用PHP 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function foo($n) { for($i=1; $i<$n; $i++) echo $i; for(; $i>0; $i--) echo $i; echo '<br>'; if($n>1) foo($n-1);}echo '<div align=center>';foo(6);echo '</div>'; <?php function foo($n) { for($i=1; $i<$n; $i++) echo $i; for(; $i>0; $i--) echo $i; echo '<br>'; if($n>1) foo($n-1); } echo '<div align=right>'; foo(6); echo '</div>';?>2楼的代码是可行的.. function foo($max) { echo '<pre>'; for ($i=$max; $i>0; $i--) { $str = $j = $i; while ($j > 1) { $str = ($j-1) . $str . ($j-1); $j--; } $str = str_repeat(' ', (6 - $i)*2) . $str; echo $str, "\r\n"; } echo '</pre>';}foo(6); 楼上很正确.递归调用function foo($n) { for($i=1; $i<$n; $i++) echo $i; for(; $i>0; $i--) echo $i; echo '<br>'; ($n>1)?foo($n-1):""; //如何大于1 的时候递归调用}echo '<div align=center>';foo(6);echo '</div>';/****再提供一种不用递归的方法。*/function foo2($n) { for($t = 0;$t<$n;$t++) { for($i=1; $i<$n-$t; $i++) echo $i; for(; $i>0; $i--) echo $i; echo "<br/>"; }}echo '<div align=center>';foo2(6);echo '</div>'; 楼主,2#回答的很正确啊。稍微改改会吧?<?php$n=6;function foo($n) { for($i=1; $i<$n; $i++) echo $i; for(; $i>0; $i--) echo $i; echo '<br>'; if($n>1) foo($n-1);}echo '<div align=center>';foo(6);echo '</div>';?> sorry 我是说二楼正确,一晃中间插入了这么多帖。 让人想起当年学C的时候做的习题。$n = 6;$pad = '';echo "<div style='text-align:center'>";while($n){ for( $i=1,$j=2*$n;$i<$j;$i++) { $k = $j - $i; $k = $k > $n ? $j - $k : $k; echo $k; } echo "<br/>"; $pad .= " "; echo $pad; $n--;}echo "</div>"; 在浏览器里测试例子,不用div居中还真难办,各种分辨率 怎么说呢,浏览器分辨率是客户端的东西,要做的话需要引入javascript,把分辨率发送给服务器端phpcss绝对居中的div况且都要写一坨css,就不要为难php了...呵呵 <?php /****再提供一种不用递归的方法。*/function foo2($n) { for($t = 0;$t<$n;$t++) { for($j = 0;$j<$t;$j++) echo "*"; for($i=1; $i<$n-$t; $i++) echo $i; for(; $i>0; $i--) echo $i; for($j = 0;$j<$t;$j++) echo "*"; echo "<br/>"; }}echo '<div>';foo2(6);echo '</div >';?>是不是这样的效果??? 把* 替换成  即可12345654321*123454321***1234321*****12321*******121*********1***** 不用div 就用center 标签。这个居中效果挺好。 <?phpdefine('NUM' , 100);foreach(range(1 , NUM , 1) as $n){ $pad_len += strlen($n);}$pad_len = $pad_len * 2 - 1;foreach(range(NUM , 1 , -1) as $n){ echo "<LI>" , str_replace('-' , ' ' , str_pad(join(array_merge(range(1 , $n , 1) , $n == 1 ? array() : range($n-1 , 1 , -1))) , $pad_len , '-' , STR_PAD_BOTH));}?> 我研究了一下,发这个代码给大家帮我提导一下。<?php/*递归*/function foo($L){ $H = intval($L/1);//获取变量的整数值 for($i=$L;$i>=1;$i-=1,$H++){//递归,$i接受$L传值 $i大于1时,$i自减1.$H是前面的空格 for($j=1;$j<$H;$j++){ echo " ";} for($k=1;$k<=$i;$k++){ echo $k;} for($k=$i-1;$k>=1;$k--){ echo $k;} echo "<br />";} } foo(6);?> 发这个代码给大家帮我指导一下。<?php/*递归*/function foo($L){ $H = intval($L/1);//获取变量的整数值 for($i=$L;$i>=1;$i-=1,$H++){//递归,$i接受$L传值 $i大于1时,$i自减1.$H是前面的空格 for($j=1;$j<$H;$j++){ echo " ";} for($k=1;$k<=$i;$k++){ echo $k;} for($k=$i-1;$k>=1;$k--){ echo $k;} echo "<br />";} } foo(6);?> 凑个热闹瞎来一个,递归的$output = "";foo(6, &$output);echo $output;function foo($n, $str) { $c = ""; for($i=1;$i<$n;$i++) { $c = substr_replace( $c, ($i.$i), strlen($c)/2, 0 ); } $c = substr_replace( $c, $n, strlen($c)/2, 0 ); $str .= $c."\r\n"; if ( $n != 1 ) { foo( --$n, &$str ); }} 单击图片,在js里获取图片的地址,并在文本框中显示 求mysql一条语句 PDO封装问题。 小小if语句问题! 这两个PHP语法你见过吗??? 怎样理解函数的定义? [急盼]请问 php 如何得到 smarty 模版中标但提交的变量? 找高手来求一段正则替换的代码 支付宝API接口包怎么下载 CentOS 7.2 phpmailer发不了邮件 怎么能让 json_decode 解析带斜杠的字符串 php二维数组如何正确赋值?
for($i=1; $i<$n; $i++) echo $i;
for(; $i>0; $i--) echo $i;
echo '<br>';
if($n>1) foo($n-1);
}
echo '<div align=center>';
foo(6);
echo '</div>';
function foo($n) {
for($i=1; $i<$n; $i++) echo $i;
for(; $i>0; $i--) echo $i;
echo '<br>';
if($n>1) foo($n-1);
}
echo '<div align=right>';
foo(6);
echo '</div>';
?>2楼的代码是可行的..
function foo($max) {
echo '<pre>';
for ($i=$max; $i>0; $i--) {
$str = $j = $i;
while ($j > 1) {
$str = ($j-1) . $str . ($j-1);
$j--;
}
$str = str_repeat(' ', (6 - $i)*2) . $str;
echo $str, "\r\n";
}
echo '</pre>';
}
foo(6);
function foo($n) {
for($i=1; $i<$n; $i++) echo $i;
for(; $i>0; $i--) echo $i;
echo '<br>';
($n>1)?foo($n-1):""; //如何大于1 的时候递归调用
}
echo '<div align=center>';
foo(6);
echo '</div>';
/***
*再提供一种不用递归的方法。
*/
function foo2($n) {
for($t = 0;$t<$n;$t++)
{
for($i=1; $i<$n-$t; $i++) echo $i;
for(; $i>0; $i--) echo $i;
echo "<br/>";
}
}
echo '<div align=center>';
foo2(6);
echo '</div>';
<?php
$n=6;
function foo($n) {
for($i=1; $i<$n; $i++) echo $i;
for(; $i>0; $i--) echo $i;
echo '<br>';
if($n>1) foo($n-1);
}
echo '<div align=center>';
foo(6);
echo '</div>';
?>
$n = 6;
$pad = '';
echo "<div style='text-align:center'>";
while($n)
{
for( $i=1,$j=2*$n;$i<$j;$i++)
{
$k = $j - $i;
$k = $k > $n ? $j - $k : $k;
echo $k;
}
echo "<br/>";
$pad .= " ";
echo $pad;
$n--;
}
echo "</div>";
css绝对居中的div况且都要写一坨css,就不要为难php了...呵呵
<?php /***
*再提供一种不用递归的方法。
*/
function foo2($n) {
for($t = 0;$t<$n;$t++)
{
for($j = 0;$j<$t;$j++) echo "*";
for($i=1; $i<$n-$t; $i++) echo $i;
for(; $i>0; $i--) echo $i;
for($j = 0;$j<$t;$j++) echo "*";
echo "<br/>";
}
}
echo '<div>';
foo2(6);
echo '</div >';?>
是不是这样的效果??? 把* 替换成  即可
12345654321
*123454321*
**1234321**
***12321***
****121****
*****1*****
define('NUM' , 100);foreach(range(1 , NUM , 1) as $n){
$pad_len += strlen($n);
}$pad_len = $pad_len * 2 - 1;foreach(range(NUM , 1 , -1) as $n){
echo "<LI>" , str_replace('-' , ' ' , str_pad(join(array_merge(range(1 , $n , 1) , $n == 1 ? array() : range($n-1 , 1 , -1))) , $pad_len , '-' , STR_PAD_BOTH));
}
?>
/*递归*/
function foo($L){
$H = intval($L/1);//获取变量的整数值
for($i=$L;$i>=1;$i-=1,$H++){//递归,$i接受$L传值 $i大于1时,$i自减1.$H是前面的空格
for($j=1;$j<$H;$j++){
echo " ";}
for($k=1;$k<=$i;$k++){
echo $k;}
for($k=$i-1;$k>=1;$k--){
echo $k;}
echo "<br />";}
}
foo(6);
?>
/*递归*/
function foo($L){
$H = intval($L/1);//获取变量的整数值
for($i=$L;$i>=1;$i-=1,$H++){//递归,$i接受$L传值 $i大于1时,$i自减1.$H是前面的空格
for($j=1;$j<$H;$j++){
echo " ";}
for($k=1;$k<=$i;$k++){
echo $k;}
for($k=$i-1;$k>=1;$k--){
echo $k;}
echo "<br />";}
}
foo(6);
?>
foo(6, &$output);
echo $output;function foo($n, $str) {
$c = "";
for($i=1;$i<$n;$i++) {
$c = substr_replace( $c, ($i.$i), strlen($c)/2, 0 );
}
$c = substr_replace( $c, $n, strlen($c)/2, 0 );
$str .= $c."\r\n";
if ( $n != 1 ) {
foo( --$n, &$str );
}
}