#题外话(第42篇题解)
#先看题目
题目链接https://www.luogu.com.cn/problem/P1035#思路
没啥思路,这其实偏向模拟一点,按照题目说的做就行了。
#代码
原来是这个熊样的(都能AC,优化的问题)
cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
double i=1,cnt=0,k,sum=0,x;
cin>>k;
while(sum<=k){
x=1.0/i;
sum+=x;
cnt++;i++;
}
cout<<cnt;
return 0;
}
但是后来又想了想,优化成了这样:(cnt和i其实差不多)
cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
double i=1,cnt=0,k,sum=0,x;
cin>>k;
while(sum<=k){
x=1.0/(cnt+1);
sum+=x;
cnt++;
}
cout<<cnt;
return 0;
}
再来一波注释:
cpp
#include <bits/stdc++.h>//看它干什么?没见过吗~
using namespace std;//命冥空间
#define qwq return 0;
double cnt=0,k,sum=0,x;//得用double哈
int main(){
//freopen("a.in","r",stdin);freopen("a.out","w",stdout);
//上面这行的话......
cin>>k;//先整进来
while(sum<=k){//循环,当和小于目标数时一直干
x=1.0/(cnt+1);//产生"级数"
sum+=x;//级数求和
cnt++;//其实可以优化成for,但懒得弄了
}
cout<<cnt;//输出
qwq
}
完结撒花!