寫一個函數計算當參數為 n(n很大) 時的值 1-2+3-4+5-6+7……+n
想想後再看答案吧^^
<?php
/*
1-2+3-4+5-6+7.....+n
*/
$n=5001;
echo fn_1($n);
echo "<hr>";
echo fn_2($n);
//直覺式
function fn_1($n)
{
if($n <= 0)
{
echo "error: n moust > 0";
exit();
}
$temp = 0;
$flag = 1;
for($i=1;$i<=$n;$i++)
{
$temp = $temp + $i*$flag;
$flag = (-1)*$flag;
}
return $temp;
}
//數學式
function fn_2($n)
{
if($n <= 0)
{
echo "error: n moust > 0";
exit();
}
if(0 == $n%2) return ($n/2)*(-1);
else return ($n/2-0.5)*(-1)+$n;
}
show_source("think_1.php");
?>
沒有留言:
張貼留言