调和级数
白墨锦 2018-11-15 12:06:25
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
代码如下:
#include <iostream>
using namespace std;
int main()
{
double sum=0;
int n=1;
while(sum<15)
{
sum=sum+1.0/n;//注意这里的1.0
n++;
}
cout<<n<<endl;
cout<<"fuck";
return 0;
}
#include <stdio.h>
const int MAXN = 1e7;
int main(int argc, const char * argv[])
{
double sum = 0;
int i = 1;
for (; i < MAXN; i++)
{
sum = sum + 1.0 / i;
if (sum >= 15.0)
{
printf("%d\n", i);
break;
}
}
return 0;
}
JAVA代码
public static void main(String[] args) {
double i = 0.0;
double sum = 0.0;
while (sum<15) {
i += 1.0;
double x = 1/i;
sum += x;
}
System.out.println(i);
}