我怎样才能在三角形式打印整数
我想打印在三角形形态整数这个样子我怎样才能在三角形式打印整数
1
121
12321
我试过,但我没有得到实际结果
for($i=1;$i<=3;$i++)
{
for($j=3;$j>=$i;$j--)
{
echo " ";
}
for($k=1;$k<=$i;$k++)
{
echo $k;
}
if($i>1)
{
for($m=$i; $m>=1; $m--)
{
echo $m;
}
}
echo "<br>";
}
输出的此代码是:
1
1221
123321
我在哪里出错了,请指导我。
您的代码应该是这样的:
for($i=1;$i<=3;$i++)
{
for($j=3;$j>$i;$j--)
{
echo " ";
}
for($k=1;$k<$i;$k++) /** removed = sign*/
{
echo $k;
}
if($i>=1) /**added = sign*/
{
for($m=$i; $m>=1; $m--)
{
echo $m;
}
}
echo "<br>";
}
试试这个。
详情:
你的循环是不是适当的在
for($k=1;$k<=$i;$k++)
情况下,这将打印 重复号码时少检查车况,然后,再对等于。 因此删除等号。原因添加eqaul符号在
if($i>=1)
是,如果有将不等于作为第一它将被用于从其中除去等号循环打印第一元件将不打印。
输出将是这样的:
1
121
12321
@ hek2mgl OP是堆叠的,我正在帮助他们。就是这样。 –
@ hek2mgl:那又怎么样?他试过了,他被卡住了,他在寻求帮助。他在什么地方解决了问题? –
是的,至少OP有他自己的代码,有很多人来这里什么也没有,至少OP已经尝试 – pythonian29033
对于所有的X-MAS爱好者:
$max = 9; # can be 2 .. 9
for($i = 1; $i <= $max; $i++) {
$line = (str_pad('', $max - $i));
for($ii = 1; $ii <= $i; $ii++) {
$line .= $ii;
}
for($ii = $i-1; $ii > 0; $ii--) {
$line .= $ii;
}
echo $line . PHP_EOL;
}
输出:
1
121
12321
1234321
123454321
12345654321
1234567654321
123456787654321
12345678987654321
令人赞叹的计算机都能够实现时下!不是吗?
另一个整数解:
$n = 9;
print str_pad ("✭",$n," ",STR_PAD_LEFT) . PHP_EOL;
for ($i=0; $i<$n; $i++){
print str_pad ("", $n - $i);
for ($ii=-$i; $ii<=$i; $ii++){
if ($i % 2 != 0 && $ii % 2 == 0)
print "&#" . rand(10025,10059) . ";";
else print $i - abs($ii) + 1;
}
print PHP_EOL;
}
✭
1
1✬1
12321
1❊3✪3✳1
123454321
1✼3✶5❃5❈3✸1
1234567654321
1✾3✯5✿7❉7✫5✷3✶1
12345678987654321
或者,如果你已经有了字符串,你可以这样做:
$n = 9; $s = "12345678987654321"; $i = 1;
while ($i <= $n)
echo str_pad ("", $n-$i) . substr ($s,0,$i - 1) . substr ($s,-$i++) . PHP_EOL;
有点迟到了,但在这里却使用另一种解决方案“为“循环与两个初始化变量和基于三元的增量/减法器。这是对“for”循环的非正统使用,但它仍然非常有效,可以说代码更优雅,更容易遵循。我选择在每次分号后增加的空间,而忽略其他所有空间的括号内,以便更容易直观每三块的的“for”循环(初始化,条件,递增/递减):
$count = 9;
echo "<pre>";
for ($i=1; $i<=$count; $i++) {
echo str_pad("",$count-$i," ",STR_PAD_LEFT);
for ($j=1,$up=true ; $j>0 ; $up?$j++:$j--) {
echo $j;
if ($j==$i) {$up = false;}
}
echo "<br>";
}
echo "</pre>";
输出:
1
121
12321
1234321
123454321
12345654321
1234567654321
123456787654321
12345678987654321
投票重新关闭。“虽然类似的问题可能在这里讨论,但这个问题的解决方式不太可能有助于未来的读者**”,因为修复只是“使用正确的循环逻辑”,无法进一步解释。我很高兴你找到了你的解决方案。 –
@MikeB那么因为回答这个问题应该关闭吗?我没有关注。 –
@Jack我无法看到满足封闭消息中微不足道要求的点缀答案。总变化量为2个字符,净值为0,不能以“学习如何嵌套循环和增量计数器”以外的方式进行解释。我知道我们可能不同意什么符合SO的可接受问题。对我来说,这是低质量的 - 你有权另有想法。 –