• 20200826开关灯(奥赛一本通 p80 8)


    //假设有n盏灯(n为不大于5000的正整数),从1-n按顺序依次编号,初始时全部处于开启状态,0为开,1为关
    //有m个人(m为不大于n的正整数)也从1-m依次编号。
    //第1个人将灯全部关闭,第2个人将编号为2的倍数的灯打开,第3个人将是3倍数的灯做相反处理(也就是将打开的灯关闭,关闭的灯打开)。依照编号
    //递增顺序,以后的人都和3号一样,将凡是自己的编号倍数的灯做相反处理。
    //请问:当第m个人操作之后,哪些编号的灯是关闭的,从小到大输出其编号,其间用逗号间隔。
    #include <bits/stdc++.h>
    using namespace std;
    int a[5001];
    int main()
    {
      int m,n,z=1;
      memset(a,0,sizeof(a));
      //上行的意思是:对于数组a,从0开始到5001都初始为0,第二个参数是初始值,memset是逐字节COPY的
      cin>>n>>m;
      for(int i=1;i<=m;i++)
      {

        for(int j=1;j<=n;j++)
         {
           if(j%i==0) a[j]=!a[j];
         }
      }
      for(int i=1;i<=n;i++)
        {
         if(a[i]) //如果是关闭的灯
            {
              if(z)
               {
                 z=0;
               }
             else
              {
                 printf(",");
              }
           printf("%d",i);
       }

    }
    printf(" ");
    return 0;
    }

  • 相关阅读:
    Python+Selenium学习笔记8
    Python+Selenium学习笔记7
    Python+Selenium学习笔记6
    Python+Selenium学习笔记5
    Python+Selenium学习笔记4
    java类为什么是单继承。类的继承,实现接口。
    类,对象之间的关系
    java 向上转型 向下转型
    jsp 中 request.getHeader() 相关详细
    MyEclipse使用经验总结
  • 原文地址:https://www.cnblogs.com/whcsrj/p/13567929.html
Copyright © 2020-2023  润新知