Secto白帽博客-专注于技术研究

C/C++基础算法练习-开门关门

宾馆有100个房间,从1——100编了号,第一个服务员把所有的房间门打开,第二个服务员把所有编号是2的倍数的房间作“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”,……,以后每个服务员都是如此。当第100个服务员来过后,哪几扇门是开着的?输出这几扇门的编号。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开。

#include <iostream>
using namespace std;
int main(){
    bool a[105]={0};
    for(int i=1;i<=100;i++){
        for(int j=i;j<=100;j++){
            if(j%i==0){
                if(a[j]==0) a[j]=1;
                    else a[j]=0;
            }
        }
    }
    for(int i=1;i<=100;i++){
        if(a[i]==1) cout<<i<<" ";
    }
    return 0;
}

By:海螺HL
Time:2020/3/15

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »