萌新求助

P1035 [NOIP2002 普及组] 级数求和

ccyhhy @ 2022-09-14 13:25:28

#include<iostream>
using namespace std;
int main()
{
    int k;
    cin >> k;
    double j = 0;
    for(double S=0;S<=k;S+=1/j)
    {
        j=j++;
    }
    int n = j;
    cout << n ;
    return 0;
}
        怎么过不了呀

by 251Sec @ 2022-09-14 13:32:26

j=j++;


by __Corrupt_X__ @ 2022-09-14 13:56:53

@251Sec 对,这里直接++j不就行了?


by ccyhhy @ 2022-09-14 13:58:18

为什么不行?


by ccyhhy @ 2022-09-14 13:59:21

在for循环语句中都可以有n++


by 251Sec @ 2022-09-14 14:01:06

@ccyhhy j++ 代表让 j 的值增加 1。你写 j++ 是对的。但是写 j=j++ 就是把 j 增加 1 再把 j 原来的值赋值给它,相当于没变。


by 251Sec @ 2022-09-14 14:01:36

另外,j++++j 是不同的,具体可以搜一下。


by Gmzhgmzh @ 2022-10-03 18:11:34

#include<bits/stdc++.h>
using namespace std;
int main()
{
int k,n=0;
scanf("%d",&k);
for(double s=0;s<=k;++n,s+=1.0/n);
printf("%d",n);
return 0;
}

|