题解 【洛谷P1035】[NOIP2002]级数求和


这个题……用循环也是可以的,不过我写了两种循环的题解,供各位dalao参考!O(∩_∩)O谢谢!

for循环版本:

 1 #include//万能头文件
 2 using namespace std;
 3 double x;
 4 int s,i;
 5 //把变量定义成全局变量,变量一开始值都是0
 6 int main(){
 7     cin>>s;//输入
 8     for(i=1;;i++){
 9         x=x+1.0*1/i;//累加
10         if(x>s)break;//达到条件后就可以退出循环了
11     }
12     cout<//输出
13     return 0;//在NOIP考场上,不写return 0会爆0的!!!所以return 0很重要!
14 }

while循环版本:

 1 #include//万能头文件
 2 using namespace std;
 3 int N=1,K;
 4 double tmp;//累加器 
 5 int main(){
 6     cin>>K;//输入
 7     while(tmp<=K){//当累加器小于要求的数时
 8         tmp+=1.0/N;//累加器继续加
 9         N++;//分母加1
10     }
11     cout<1;//输出时注意减1
12     return 0;//完美结束
13 }