1. 程式人生 > >藍橋杯 C本科B組 調和級數無限逼近

藍橋杯 C本科B組 調和級數無限逼近

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;
}