我尝试制作它所以它将分数分为1,1 / 2,1 / 3,1 / 4等,最多为1/100,然后将它们加在一起,只显示总和而不是分数链。
到目前为止我的代码看起来像这样:
<?
$sum = 0;
for($n = 1; $n<=1/100; $n+=1/$n)
{
$sum = $sum + $n;
}
echo $sum;
但它永远不会给我正确答案,即5.18。有什么建议吗?
答案 0 :(得分:3)
您需要限制循环。您需要增加$n
$sum = 0;
for($n = 1; $n<=100; $n++)
{
$sum = $sum + (1/$n);
}
echo $sum;
//answer 5.1873775176396
答案 1 :(得分:1)
仅供参考,对于这样的简单操作,你的for循环甚至不需要正文。
$sum = 0;
for($n=1; $n<=100; $sum +=(1/$n++));
echo $sum;
请参阅php for文档中的示例四。
答案 2 :(得分:0)
for($n = 1; $n<=; $n+=1/$n)
您必须定义for的limit insecond参数,它在无穷大
中运行编辑:
在第二个和第三个参数之间,您必须插入;
答案 3 :(得分:0)
<?php
$sum = 0;
for ($n=1; $n<=100; $n++) {
$sum = $sum + (1/$n);
}
echo $sum;
// or use round if you want it rounded
//echo round($sum,2);
此代码符合PSR-2
答案 4 :(得分:-1)
试试这个:
for ($n = 0, $sum = 0; $n < 100; $n++, $sum += 1 / $n);
echo $sum;