开灯问题

2025-04-28 06:57:11
推荐回答(3个)
回答1:

//代码已AC
#include
using namespace std;

bool status[10001] = {0};

int main()
{
int i,j,n,k;
bool flag = false; //标志位,控制空格输出

while(scanf("%d %d", &n, &k) != EOF)
{
memset(&status[1],0,n * sizeof(bool));
flag = false;
for(i = 1 ;i <= n;i ++)
{
for(j = 1; j <= k; j++)
{
if(!(i % j))
status[i] = !status[i];
}
if(status[i])
{
if(flag)
printf(" ");
else
flag=true;
printf("%d",i);
}
}
printf("\n");
}

return 0;
}

回答2:

#include
int main()
{
int a[1001];
int n,k,i,j;
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++)
{a[i]=0;}
for(j=1;j<=k;j++)
{for(i=1;i<=n;i++)
{
if(i%j==0)
a[i]=1-a[i];
}
}
for(i=1;i<=n;i++)
{
if(a[i]==1)
printf("%d ",i);
}
printf("\n");
return 0;
}

回答3:

可能会有色斑