hjgfshecvyua @ 2020-12-23 11:12:01
#include<stdio.h>
int main()
{
int n,k;
float sum=0.000000;
scanf("%d",&k);
for(n=1;n<=100000;n++)
{
sum+=(1.0/n);
if(sum>k)break;
}
printf("%d",n);
return 0;
}
by w23c3c3 @ 2020-12-23 11:14:52
@hjgfshecvyua n的范围到2e6就能过了
调和级数就和是大概
by _红_ @ 2021-02-19 20:48:00
#include<bits/stdc++.h>//万能头文件
using namespace std;
double x;
int s,i;
//把变量定义成全局变量,变量一开始值都是0
int main(){
cin>>s;//输入
for(i=1;;i++){
x=x+1.0*1/i;//累加
if(x>s)break;//达到条件后就可以退出循环了
}
cout<<i;
return 0;//爆零才不加return 0;
}
这是我的代码
by Wobuxing @ 2021-04-23 19:22:17
建议写递归
,以空间
换时间
#include <cstdio>
int k;
int main() {
void s(int n);
scanf("%d",&k);
s(1);
return 0;
}
void s(int n) {
double ans=1;
for (int i=2;i<=n;++i) ans += 1.0/i;
if (ans > (double)k) {printf("%d",n);return;}
else s(n + 1);
return;
}
试试,不一定能过