超时了吗?

P1035 [NOIP2002 普及组] 级数求和

imbecile @ 2020-05-17 13:52:55

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n=1,k;
    double s=0.0;
    cin>>k;
    while(s<k)
    {
        s+=double(1/n);
        n++;
    }
    cout<<n;
} 

by 江户川·萝卜 @ 2020-05-17 13:54:50

是的


by 159号程序员 @ 2020-05-17 13:55:00

可以直接写s += 1.0 / n


by 159号程序员 @ 2020-05-17 13:55:11

超时是超了


by imbecile @ 2020-05-17 13:55:14

@江户川·萝卜 怎么改呢


by 159号程序员 @ 2020-05-17 13:55:19

可以用快读


by 159号程序员 @ 2020-05-17 13:55:33

或者scanf()


by 159号程序员 @ 2020-05-17 13:55:39

@zengxiangtuo


by imbecile @ 2020-05-17 13:55:42

@159号程序员 有其他办法吗


by 江户川·萝卜 @ 2020-05-17 13:56:06

double(1/n)是把1/n的结果再强制转换成double类型的,所以除了第一次一直是零


by 江户川·萝卜 @ 2020-05-17 13:56:20

成了死循环


| 下一页