算法竞赛入门经典_开灯问题

题目:

C++:

#include<stdio.h>
#include<string.h> 
#include<iostream>
#define maxn 1010 

using namespace std;

int a[maxn]; 

int main() 
{ 
	int n, k, first = 1; 
	memset(a, 0, sizeof(a));   //把数组a清零,它也在string.h中定义 
	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;
}

猜你喜欢

转载自blog.csdn.net/qq_38734403/article/details/80449106