新人求助,请问下面的代码,怎么改成 跟下图一样秩序的 php数字金字塔,谢谢,
<?php$str=0;$m=200;for($i=1;$i<=20;$i++){if($str>=$m){break;}for($b=20;$b>=$i;$b--){e...
<?php$str=0;$m=200;for($i=1;$i<=20;$i++){ if($str>=$m) { break; } for ($b=20;$b>=$i;$b--){ echo " "; } for($a=1;$a<=$i;$a++) { $str++; echo "$str"." "; if($str>=$m) { break; } } echo "<br/>";}?>
展开
2个回答
展开全部
要弄成完美的金字塔, 需要考虑到最大的数字是几位数, 来确定放几个空格, 另外html中的多个空格只显示一个空格, 需要转义成 来代替空格。
<?php
$str = 0;
$m = 200; //最大的数占3格, 可以直接定为3个数。
$num_len = 3;
$hang = 20; //显示行数
for($i = 1; $i <= $hang; $i ++){
if($str >= $m){
break;
}
//输出首数字前的空格
for($b = $hang-$i-1; $b >= 0; $b--){
echo "   ";
}
//开始输出数字
for($a = 1; $a <= $i; $a ++){
$true_str = '';
$str ++;
//长度不够, 补空格, 为了美观, 改成-
switch (strlen($str)){
case 1:
$true_str = "-".$str."-";
break;
case 2:
$true_str = $str."-";
break;
default:
$true_str = $str;
break;
}
echo "$true_str" . "   ";
if($str >= $m){
break;
}
}
echo "<br/>";
}
?>
追答
最后少了个换行 <br>
<?php
$str = 0;
$m = 200; //最大的数占3格, 可以直接定为3个数。
$num_len = 3;
$hang = 20; //显示行数
for($i = 1; $i <= $hang; $i ++){
if($str >= $m){
break;
}
//输出首数字前的空格
for($b = $hang-$i-1; $b >= 0; $b--){
echo "   ";
}
//开始输出数字
for($a = 1; $a <= $i; $a ++){
$true_str = '';
$str ++;
//长度不够, 补空格, 为了美观, 改成-
switch (strlen($str)){
case 1:
$true_str = "-".$str."-";
break;
case 2:
$true_str = $str."-";
break;
default:
$true_str = $str;
break;
}
echo "$true_str" . "   ";
if($str >= $m){
break;
}
}
echo "<br>";
}
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询