Wsm4321 @ 2023-02-20 11:38:30
#include<iostream>
using namespace std;
int main() {
double sum=0.0;
int k;
double b=0.0;
cin>>k;
for(int i=1;i>0;i++){
int n=i;
sum=(1.0)*(n+1)/2;
if(sum>k){
cout<<i<<endl;
break;
}
}
return 0;
}
by Enguang_Cai @ 2023-02-20 11:56:08
#include<iostream>
using namespace std;
int main() {
double sum=0.0;
int k;
cin>>k;
for(double i=1;;i++){
sum += double(1/i);
if(sum>k){
cout<<i<<endl;
break;
}
}
return 0;
}
by Enguang_Cai @ 2023-02-20 12:10:53
@Wsm4321
首先我建议你把所有的int都改成double。这样可以保证你运算的结果最后是double类型。
其次你的第十行代码是逻辑漏洞的,可以自己想一想。我有点看不懂你为什么要这么写,所以也不好解释他为什么是错的。
还有一个无关痛痒的小建议。不要用这个
#include<iostream>
下面这个头文件更好用
#include<bits/stdc++.h>
by Enguang_Cai @ 2023-02-20 12:11:59
@Enguang_Cai 这个是我的解法你可以参考一下