Aioverst @ 2020-01-18 13:39:32
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,k;
float s;
scanf("%d",&k);
for (s=0,n=0;s<=k;n++,s=s+1./n)
;
printf("%d",n);
return 0;
}
by impuk @ 2020-01-18 13:42:29
精度问题~~
by impuk @ 2020-01-18 13:42:50
你甚至可以用long double
by MatrixCascade @ 2020-01-18 13:43:19
@Aioverst float精度很低的
by impuk @ 2020-01-18 13:45:07
@Aioverst 你如果有问题可以直接私信我~~~
不过这题正解不是这么打的。下面的才是正解。
uses math;
var n:longint;
begin
read(n);
writeln(trunc(exp(n-0.5772156649)+0.5));
end.
by Aioverst @ 2020-01-18 13:49:41
float看起来不还是可以容纳十位数嘛。。。
好的,知道啦,谢谢
by Aioverst @ 2020-01-18 13:50:50
@一只爬行者 你这用的是?
by impuk @ 2020-01-18 13:51:38
我是远古的P党人,但是看得懂C++,也会写C++。
by dzk从不打表 @ 2020-01-18 14:26:57
马蜂独特
by biology @ 2020-01-21 12:02:17
#include<bits/stdc++.h>
int main(){
short k,n=0;
double Sn=0.0;
scanf("%hd",&k);
while(Sn<=k){
n++;
Sn=Sn+1.0/n;
}
printf("%hd",n);
return 0;
}
by biology @ 2020-01-21 12:02:35
大侠们,这段哪里有问题?