如果An是全部不为0的等差数列,则1/An就称为调和数列,求和所得即为调和级数,易得,所有调和级数都是发散于无穷的。
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
源代码:
#include<stdio.h>
int main()
{
double sum=0;
long i=1;
while(1)
{
sum = sum+1.0/i;
if(sum>=15.0)
{
break;
}
i++;
}
printf("%ld\n",i);
return 0;
}
答案:1835421 不是1835422!!
#include<stdio.h>
int main()
{
long i=0;
double sum=0;
while(sum<=15.0)
{
i++;//因为i的初值是0所以要先做i自增,不然下面的i作为分母为0就错了
sum = sum+1.0/i;
}
printf("%ld\n",i);
return 0;
}