T1079 开关灯

作者:舞

开关灯

先看题目
在这里插入图片描述


这道题首先要写一个函数,用来进行开关的操作。
然后用一个for循环的二级嵌套来进行开关的操作。
最后再控制逗号的输出,让最后一个数字不再输出逗号就好了。
建议:本题的逻辑稍复杂。建议画好流程图
代码

#include<iostream>
using namespace std;
int a[50001]={1};
int X(int a){
    return a==1?0:1;
}
int main()
{
    int N,M;
    cin>>N>>M;
    int i,j;
    for(i=1;i<=N;i++){
        a[i]=0;
    }
    for(i=2;i<=M;i++){
        for(j=i;j<=N;j+=i){
            a[j]=X(a[j]);
        }
    }
    int num=0;
    for(int i=1;i<=N;i++){
        if(a[i]==0){
            num++;
        }
    }
    int temp=0;
    for(int i=1;i<=N;i++){
        if(a[i]==0&&temp!=num-1){
            cout<<i<<",";
            temp++;
        }
        else if(a[i]==0){
            cout<<i;
        }
    }
    return 0;
}

发布了35 篇原创文章 · 获赞 35 · 访问量 6819

猜你喜欢

转载自blog.csdn.net/lz28noi/article/details/104322173