版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_42812128/article/details/86669242
emmm要注意s必须是double类型,还有就是i的范围要足够大,太小有的n会找不到的。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int k;
double s=0,n;
cin>>k;
for(n=1;n<1000000000;n++){
s=s+1/n;
if(s>k)
{
cout<<n;
break;
}
}
return 0;
}
然后我看到了一位大神的做法,很棒的一点就是i不用去设置上限。
#include<cstdio>
int main() {
int k,n=0;
scanf("%d",&k);
for(double Sn=0;Sn<=k;++n,Sn+=1.0/n);
printf("%d",n);
return 0;
}