题解 P1035 【级数求和】
夜雨声烦hst
2017-12-15 20:52:58
这道题我们可以用递归来做,避免时间的浪费,当递归找到那个数值之后,直接cout出来。#include<iostream>
```cpp
#include<cstdio>
using namespace std;
double search(double,double);
double n,t=1;
double print(double);
int main()
{
cin>>n;
search(n,0);//搜索模块。
}
double search(double x,double sum)//下面就是调用的深搜模块。
{
sum=sum+1/t;
t++;
if(sum>n) print(t);//调到输出的子程序
else return search(x,sum);//深搜
}
double print(double q)
{
cout<<q-1;
return 0;
}
```
下面是原来的做法
```cpp
#include<iostream>
#include<cstdio>
using namespace std;
double sum=0;
int main()
{
double n;
cin>>n;
for(double i=1;i<=1000000;++i)//要小心范围,小了是不可以的。
{
sum=sum+1/i;
if(sum>=n)
{
cout<<i;
return 0;
}
}
}
```
恩,各位大佬求别嘲笑!
珂朵莉太可爱啦!