小亮 @ 2018-08-03 18:18:51
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
int n=1,k;
long long s=0;
cin>>k;
for(;s<=k;n++) s=s+1/n;
cout<<n;
}
by ComeOver· @ 2018-08-03 18:29:45
你加了n呀
@w2447544837
by aiyougege @ 2018-08-03 18:29:52
首先你得保证s
是一个浮点数, 1/n
也是个浮点数
你这样写s=s+1/n
前后s
的值根本就不发生变化
by aiyougege @ 2018-08-03 18:30:30
@w2447544837
首先你得保证s
是一个浮点数, 1/n
也是个浮点数
你这样写s=s+1/n
前后s
的值根本就不发生变化
by Little_Ming @ 2018-08-03 18:44:34
s=s+ 1 /n;
在c++中,当/
两边都是整数时,进行的是整数除法(向下取整),
解决方法:
s=s+1.0/n //把1变为实数类型,进行实数除法
by _FILARET_ @ 2018-08-03 19:24:49
其实
double();
也可以(我不是特别建议用float因为精度没double高)
by intel_core @ 2018-08-03 20:45:11
long double @deadpool123 c++11
by _FILARET_ @ 2018-08-03 21:26:08
@dongyancheng long double 也可以只不过这道题用不到