自己运行出的答案和下载数据给出的答案不同,求调

P1035 [NOIP2002 普及组] 级数求和

que_de_yu_fu @ 2024-11-24 17:41:54

#include<bits/stdc++.h>
using namespace std;
int a,d;
double b,c;
int main(){
    cin>>a;
    for(int i=1;i<=a;i++)
    {
        c=1.0/i;
        b+=c;
    }
    d=ceil(b);
    cout<<d;
    return 0;
}

好奇怪啊,这样子输出的结果都是对的,为什么全是WA,下载数据显示的输入3输出11,但是自己跑出来答案是2


by YBa2Cu3O7 @ 2024-11-24 17:48:36

b没初始化


by smll_wlm @ 2024-11-24 18:02:31

@YBa2Cu3O7

b全局定义了,初始为零


by smll_wlm @ 2024-11-24 18:04:15

@que_de_yu_fu

不应该用for循环,更适合while判断。因为n显然会大于等于a。

我觉得是你题目没看懂


by que_de_yu_fu @ 2024-11-24 18:22:15

@smll_wlm n怎么可能会大于等于a,a就是n啊


by que_de_yu_fu @ 2024-11-24 18:22:56

说错了应该是n不可能大于a


by smll_wlm @ 2024-11-24 18:57:27

@que_de_yu_fu

你要不要瞪大你的眼睛看看题目到底要你干什么


by que_de_yu_fu @ 2024-11-24 19:05:55

@smll_wlm 啊?对不起我是小丑


|