|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-03-08 06:20 UTC] sander@php.net
[2002-03-08 06:27 UTC] sander@php.net
[2002-03-08 07:19 UTC] aubieweb at rogers dot com
[2002-03-08 16:52 UTC] aubieweb at rogers dot com
[2002-06-07 01:00 UTC] php-bugs at lists dot php dot net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 17 11:00:02 2025 UTC |
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; } ?>