到底怎么回事?!

B2092 开关灯

C_plus_plus_12345 @ 2024-01-30 22:10:29

#include<bits/stdc++.h>
using namespace std;
bool a[1000001]={0};
int h;
int main()
{
    cin>>h;
    for(int i=1;i<=h;i++)
    {
        for(int j=0;j<h;j+=i)
        {
            a[j]=!a[j];
        }
    }
    for(int i=0;i<=h;i++)
    {
        if(a[i])
        {
            printf("%d ", i);
        }
    }
    return 0;
}

4 个测试点被 \text\color{ff0000}WA 了,到底哪里错了?


by xingjianjun1982 @ 2024-02-03 21:19:08

不能从0开始,修改成如下

for(int i=1;i<=h;i++)
    {
        for(int j=i;j<=h;j+=i)
        {
            a[j]=!a[j];
        }
    }
    for(int i=1;i<=h;i++)
    {
        if(a[i])
        {
            printf("%d ", i);
        }
    }

by C_plus_plus_12345 @ 2024-02-05 14:58:28

能不能这么写:

for(int i=0;i<h;i++)
    {
        for(int j=i;j<=h;j+=i)
        {
            a[j]=!a[j];
        }
    }
    for(int i=0;i<h;i++)
    {
        if(a[i])
        {
            printf("%d ", i);
        }
    }

by Rchr @ 2024-08-15 07:53:18

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i*i<=n;i++){
        cout<<i*i<<" ";
    }

    return 0;
}

|