Bug #15946 Updated: Math output errors
| From: | sander@php.net | Date: | Fri, 08 Mar 2002 11:27:19 +0000 |
| Subject: | Bug #15946 Updated: Math output errors | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-2013@lists.php.net to get a copy of this message | ||
ID: 15946
Updated by: sander@php.net
Reported By: aubieweb@rogers.com
Status: Feedback
-Bug Type: Output Control
+Bug Type: Math related
Operating System: Windows 2000
PHP Version: 4.1.1
New Comment:
(reclassified)
Previous Comments:
------------------------------------------------------------------------
[2002-03-08 06:20:38] sander@php.net
Are you completely sure that it's an error in PHP and not in your
algorithm?
------------------------------------------------------------------------
[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