Bug #15946 Updated: Math output errors
| From: | sander@php.net | Date: | Fri, 08 Mar 2002 11:20:38 +0000 |
| Subject: | Bug #15946 Updated: Math output errors | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-2010@lists.php.net to get a copy of this message | ||
ID: 15946
Updated by: sander@php.net
Reported By: aubieweb@rogers.com
-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] aubieweb@rogers.com
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