为什么运行超时?在线急等大佬回复

P1035 [NOIP2002 普及组] 级数求和

victoriazsy @ 2019-10-23 14:10:07

include<stdio.h>

main() { int n,k; double Sn; scanf("%d",&k); for(n=1,Sn=1;Sn<=k;n++) { Sn=Sn+1/n; } printf("%d",n); return 0; }


by 初墨 @ 2019-10-23 14:12:06

希望更丰富的展现?使用Markdown


by Stay_Hungry @ 2019-10-23 14:12:39

@victoriazsy 把n也变成小数即可,若n是整数,1/n必定为0,S的值也不会变,所以死循环


by victoriazsy @ 2019-10-23 14:21:35

@Stay_Hungry 谢谢大佬


by tiger0133 @ 2019-10-23 14:30:39

或者写成 1./n 也可以。然后正确的发代码的方式是这样的:

```c
#include<stdio.h>
// ...
```

|