开关门

刚开始所有的门都是开着的,那么我定义一个数组,数组内所有元素都是bool类型,先将所有值都赋值为1,并且开始循环,每一次将n的倍数做相反处理,一直到n时停止,最后数组内值为1的下标输出,这样就可以得到所有开着的门的序号。

#include<iostream>
using namespace std;
int main(){
    int n;
    bool x=1;
    cin>>n;
    int *a=new int[n+1];
    for(int b=1;b<=n;b++){
        a[b]=x;
    }
    for(int c=2;c<=n;c++){
        for(int d=1;d<=n;d++){
            if(d%c==0){
                a[d]=!a[d];
            }
        }
    }
    for(int e=1;e<=n;e++){
        if(a[e]==1){
            cout<<e<<" ";
        }
    }
    return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务