求助大佬为啥只有最后一个绿了啊

P1035 [NOIP2002 普及组] 级数求和

zzjjmm11 @ 2024-10-10 09:01:17

代码如下

#include <iostream>
using namespace std;
int main(){
double k,n=1.0,s=0.0;
    cin>>k;
    for(;s<k;n++){
s=s+1/n;
}
cout<<n;
return 0;
}

提交之后结果只有最后一个是绿的


by Super_Cube @ 2024-10-10 09:06:43

@zzjjmm11

#include <iostream>
using namespace std;
int main(){
double k,n=1.0,s=0.0;
    cin>>k;
    for(;s<=k;n++){
s=s+1/n;
}
cout<<n-1;
return 0;
}

by zzjjmm11 @ 2024-10-10 09:14:23

@Super_Cube 谢谢大佬,现在反过来了只有最后一个是红了


by Super_Cube @ 2024-10-10 09:20:12

@zzjjmm11 牛的,因为你 n 是 double 导致 cout 时输出了科学计数法。

#include <iostream>
using namespace std;
int main(){
double k,n=1.0,s=0.0;
    cin>>k;
    for(;s<=k;n++){
s=s+1/n;
}
cout<<(int)n-1;
return 0;
}

by zzjjmm11 @ 2024-10-10 09:40:13

@Super_Cube 谢谢大佬,我明白了


|