zoukankan      html  css  js  c++  java
  • 【NYOJ】[77]开灯问题

    这里写图片描述

    挺简单的一题 就是模拟开关灯操作

    为了简便 把初始化时全部为0的状态与第一个人把所有灯打开对应
    所以数组值为0时开着灯 为1时为关着灯

    这一题在最后输出的格式时卡了一下
    然后中间的循环每次加的数字搞迷糊了
    纠结了一会

    #include<stdio.h>
    int main() {
        int a[1020]= {0};
        int n,k;
        scanf("%d %d",&n,&k);
        for(int i=2; i<=k; i++) {
            for(int j=i; j<=n; j+=i) {
                if(a[j])
                    a[j]=0;
                else
                    a[j]=1;
            }
        }
        int flag=1;
        for(int i=1; i<=n; i++) {
            if(!a[i]) {
                if(flag) {
                    printf("%d",i);
                    flag=0;
                } else
                    printf(" %d",i);
            }
        }
        printf("
    ");
        return 0;
    }
    

    标程的思路也是模拟
    不过用了一个循环来把数组全部初始化为1
    所以对应的
    1为开着灯
    2为关着灯
    循环写的没我好
    -.-就是这样

    #include <iostream>
    using namespace std;
    int main() {
        int n,k,a[1000],i;
        cin>>n>>k;
        for(i=0; i<n; i++)
            a[i]=1;
        for(i=2; i<=k; i++)
            for(int j=0; j<n; j++) {
                if((j+1)%i==0)
                    if(a[j]==0)a[j]=1;
                    else a[j]=0;
            }
        for(i=0; i<n; i++)
            if(a[i]==1)cout<<i+1<<" ";
        cout<<endl;
        return 0;
    }

    题目地址:【NYOJ】[77]开灯问题

  • 相关阅读:
    vgcreate语法
    lsmod语法
    lvm语法2
    lvm语法
    mount语法
    fdisk语法
    mdadm语法
    ln语法
    mknod语法
    黑客常用dos-cmd命令
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569868.html
Copyright © 2011-2022 走看看