Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. <?php
  2.  
  3.     /**
  4.      * @Construct a Triangle of Pascal
  5.      * @since 2011-09-16
  6.      * @author Edson Chimello
  7.      * @site: http://www.w3tools.info/2011/10/pascal-php-class.html
  8.      *
  9.      * FREE TO USE
  10.      */
  11.     class Pascal
  12.     {
  13.         /**
  14.          *
  15.          * @param $lin
  16.          * @return triangle
  17.          */
  18.         public function getTriangle($lin)
  19.         {
  20.             $cols = $lin * 2 - 1;
  21.    
  22.             if ($cols < 0)
  23.             {
  24.                 $cols = 0;
  25.             }
  26.    
  27.             for ($i = 0; $i < $lin; $i++)
  28.             {            
  29.                 for ($j = 0; $j < $cols; $j++)
  30.                 {
  31.                     $pascal[$i][$j] = 0;
  32.                     $pascal[0][$lin - 1] = 1;
  33.                     $cont = 0;
  34.            
  35.                     for ($i = 1; $i < $lin; $i++)
  36.                     {
  37.                         for ($j = $lin - 1 - $i; $j < $cols; $j += 2)
  38.                         {
  39.                             if ($cont <= $i)
  40.                             {
  41.                                 if ($j == 0 || $j == $cols - 1)
  42.                                 {
  43.                                     $pascal[$i][$j] = 1;
  44.                                
  45.                                 }else{
  46.                                     $pascal[$i][$j] = $pascal[$i - 1][$j - 1] +
  47.                                     $pascal[$i - 1][$j + 1];
  48.                                 }
  49.                             }
  50.                             $cont++;
  51.                         }
  52.                     $cont = 0;
  53.                     }
  54.                 }
  55.             }
  56.    
  57.             for ($i = 0; $i < $lin; $i++)
  58.             {
  59.                 for ($j = 0; $j < $cols; $j++)
  60.                 {
  61.                     if ($pascal[$i][$j] != 0)
  62.                     echo sprintf("%4s",$pascal[$i][$j]) . '  ';
  63.                 }
  64.                 echo "<br />";
  65.             }
  66.         }
  67.     }
  68. ?>
  69.