美文网首页
3-2开灯问题

3-2开灯问题

作者: 始于尘埃 | 来源:发表于2019-08-14 15:51 被阅读0次
    #include <stdio.h>
    #include <string.h>
    #define maxn 1010
    int a[maxn];
    int main(){
        int n,k,i,j,first = 1;  //first为设定的输出条件,判断是不是第一个元素
        memset(a,0,sizeof(a));// 初始化数组,只能初始化为0 
        scanf("%d%d",&n,&k);
        for(i = 1; i<=k; i++){
            for(j = 1; j<=n; j++){
                if(j % i == 0) a[j] = !a[j];  //这种运算非常巧妙(很形象的表示关灯和开灯的行为) 
            }
        } 
        for(i = 1; i<=n; i++){
            if(a[i]){
                if(first) first = 0;  //必须按照规定的合适进行输出:如果没有设置first,而是直接先输出值,在输出空格,最后会多出来一个空格 
                else
                    printf(" ");
                    printf("%d",i);
            }
        }
        printf("\n");
        return 0; 
    }
    

    相关文章

      网友评论

          本文标题:3-2开灯问题

          本文链接:https://www.haomeiwen.com/subject/ctzgjctx.html