How can I print integer in triangle form How can I print integer in triangle form php php

How can I print integer in triangle form


Another integer solution:

$n = 9; print str_pad ("&#10029;",$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        11       12321      1331     123454321    135531  1234567654321  13577531 12345678987654321 

Or if you already have the string, you could do:

$n = 9; $s = "12345678987654321"; $i = 1;while ($i <= $n)   echo str_pad ("", $n-$i) . substr ($s,0,$i - 1) . substr ($s,-$i++) . PHP_EOL;


Your code should be this:

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>";}

Try this.

Details:

  1. Your loop is not proper as in case of for($k=1;$k<=$i;$k++), this will print the repeated number when check the condition for less then and again for equals to.So remove the equals sign.

  2. reason to add the eqaul sign in if($i>=1) is that the first element will not print if there will not be equals as first it will be print by for loop from where removed the equal sign.

Your output will be this:

   1  121 12321


For all the x-mas lovers:

$max = 9; # can be 2 .. 9for($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;}

Output:

        1       121      12321     1234321    123454321   12345654321  1234567654321 12345678765432112345678987654321

Amazing what computers are able to achieve nowadays! Isn't it?