zoukankan      html  css  js  c++  java
  • 一本通1109 开关灯

    【题目描述】

    假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。

    第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。

    请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。

    【输入】

    输入正整数N和M,以单个空格隔开。

    【输出】

    顺次输出关闭的灯的编号,其间用逗号间隔。

    【输入样例】

    10 10

    【输出样例】

    1,4,9

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    using namespace std;
    int main()
    {
    int n,m;
    cin>>n>>m;
    int a[n+1],b[n+1];
    for(int i=1;i<=n;i++)
    {
    a[i]=i;
    b[i]=1;//用1或-1来判断开关
    }
    for(int j=1;j<=m;j++)
    {
    for(int i=1;i<=n;i++)
    {
    if(a[i]%j==0)
    b[i]=-b[i];
    }
    }
    cout<<1;
    for(int i=2;i<=n;i++)
    {
    if(b[i]==-1)
    cout<<","<<a[i];
    }

    return 0;
    }

  • 相关阅读:
    最大后验估计(MAP)
    mysql启动问题access denied for user 'root'@'localhost'(using password:YES)
    Median of Two Sorted Arrays-----LeetCode
    Two Sum-----LeetCode
    动态资源不缓存 filter
    过滤器 filter
    分页
    aop动态代理 事务 threadlocal
    ThreadLocal 开启事务
    数据库 元数据
  • 原文地址:https://www.cnblogs.com/57xmz/p/12244341.html
Copyright © 2011-2022 走看看