开灯问题(3-2)

来源:互联网 发布:淘宝网婴儿衣服婴比迪 编辑:程序博客网 时间:2024/06/05 10:37
输入n(灯的数量)和k(人的数量)
输出开着的灯 的编号

#include <stdio.h>#include <string.h>#define maxn 1010int a[maxn];int main(){int n, k, first = 1;memset(a,0,sizeof(a));   //数组a清零,相当于初始时所有灯是关闭的 scanf("%d %d", &n, &k);for(int i = 1; i <= k; 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(first)     //标志变量 {first = 0;}else{printf(" ");    }    printf("%d", i);}} printf("\n");return 0;}


样例输入:
7 3
样例输出:
1 5 6 7
0 0