ID: 15946
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Feedback
Bug Type: Output Control
Operating System: Windows 2000
PHP Version: 4.1.1
New Comment:
Are you completely sure that it's an error in PHP and not in your
algorithm?
Previous Comments:
------------------------------------------------------------------------
[2002-03-07 22:55:18] [EMAIL PROTECTED]
I wrote a script which output Pascal's triangle and then showed the
numbers which were divisible by a certain number in a different colour.
At first, this works fine. Then after the 20th row or so, the %
operator starts outputting incorrect numbers. For example, 37 % 4
returns 1. 24 % 4 returns 3. When those numbers are checked on their
own, it works fine. In the loops though, it starts giving incorrect
information after 20 rows. You can see this at
www.alkaline2.com/triangle.php
CODE
<?
$rows--;
for ($r = 0; $r <= $rows; $r++)
{
if ($hidenum) print "<table cellpadding='0' cellspacing='0' border='1'
bordercolor='#000088' borderstyle='solid'><tr>\n";
if (!$hidenum) print "<table cellpadding='2' cellspacing='1'
border='0'><tr>\n";
for ($i = 0; $i <= $r; $i++)
{
$num = factorial($r)/(factorial($r - $i) * factorial($i));
if ($divisor > 0 && $num % $divisor == 0)
{
$bgcolor='#ff0000';
}
else
{
$bgcolor='#444444';
}
if (!$hidenum) print "<td bgcolor='$bgcolor'><span
class='text'>$num</span></td>\n";
$check = $num % $divisor;
if ($hidenum && $divisor > 0 && $num % $divisor == 0) print "<td><img
src='red.gif' width='$size' height='$size' alt='$num % $divisor =
$check'></td>\n";
if ($hidenum && $divisor > 0 && $num % $divisor != 0) print "<td><img
src='grey.gif' width='$size' height='$size' alt='$num % $divisor =
$check'></td>\n";
if ($hidenum && $divisor == 0) print "<td><img src='grey.gif'
width='$size' height='$size' alt='$num % $divisor = $check'></td>\n";
}
print "</tr></table>";
}
function factorial($x)
{
$total = 1;
for ($i = $x; $i > 1; $i--)
$total = $total * $i;
return $total;
}
?>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=15946&edit=1