Trabb Pardo–Knuth algorithm: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
(→{{header|PHP}}: Added.) |
||
Line 2,734: | Line 2,734: | ||
f(1.18367):9.38002 |
f(1.18367):9.38002 |
||
f(0.470145):1.20527 |
f(0.470145):1.20527 |
||
</pre> |
|||
=={{header|PHP}}== |
|||
<syntaxhighlight lang="php"> |
|||
<?php |
|||
// Trabb Pardo-Knuth algorithm |
|||
// Used "magic numbers" because of strict specification of the algorithm. |
|||
function f($n) |
|||
{ |
|||
return sqrt(abs($n)) + 5 * $n * $n * $n; |
|||
} |
|||
$sArray = []; |
|||
echo "Enter 11 numbers.\n"; |
|||
for ($i = 0; $i <= 10; $i++) { |
|||
echo $i + 1, " - Enter number: "; |
|||
array_push($sArray, (float)fgets(STDIN)); |
|||
} |
|||
echo PHP_EOL; |
|||
// Reverse |
|||
$sArray = array_reverse($sArray); |
|||
// Results |
|||
foreach ($sArray as $s) { |
|||
$r = f($s); |
|||
echo "f(", $s, ") = "; |
|||
if ($r > 400) |
|||
echo "overflow\n"; |
|||
else |
|||
echo $r, PHP_EOL; |
|||
} |
|||
?> |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Enter 11 numbers. |
|||
1 - Enter number: -5 |
|||
2 - Enter number: -3 |
|||
3 - Enter number: -2 |
|||
4 - Enter number: -1 |
|||
5 - Enter number: 0 |
|||
6 - Enter number: 1 |
|||
7 - Enter number: 2 |
|||
8 - Enter number: 3 |
|||
9 - Enter number: 4 |
|||
10 - Enter number: 5 |
|||
11 - Enter number: 6 |
|||
f(6) = overflow |
|||
f(5) = overflow |
|||
f(4) = 322 |
|||
f(3) = 136.73205080757 |
|||
f(2) = 41.414213562373 |
|||
f(1) = 6 |
|||
f(0) = 0 |
|||
f(-1) = -4 |
|||
f(-2) = -38.585786437627 |
|||
f(-3) = -133.26794919243 |
|||
f(-5) = -622.7639320225 |
|||
</pre> |
</pre> |
||