1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
这是第六届蓝桥杯校内预选赛的题目,呵呵,其实看下来,蓝桥杯前几题都是在考数论。第六届不定方程应该是重点.
#include<iostream>
using namespace std;
#define min 10e-10
int main()
{
int i=0;
double sum=0.0;
do
{
++i;
sum=sum+1*(1.0)/i;
}while(sum-15.0<min);
cout<<i<<endl;
return 0;
}
可以测试一下
#include<cstdio>
using namespace std;
#define min 10e-10
int main()
{
double sum=0.0;
for(int i=1;i<=1835421;++i)
{
sum=sum+1*(1.0)/i;
}
printf("%.20lf\n",sum);
return 0;
}