POJ 1218 關燈問題

題目大意:給定N盞燈,每次將編號爲i的倍數的燈反轉,i={1,2,3~~n},求最後還有多少盞燈開着。

題目分析:練代碼題,直接上代碼

如下代碼:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n,s[100000];
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		scanf("%d",&n);
		memset(s,0,sizeof(s));
		int tem=0,ans=0;
		while(++tem<=n)
		for(int i=tem;i<=n;i+=tem)
		{
			s[i]=s[i]^1;
		}	
		for(int i=1;i<=n;i++)
		if(s[i])
			ans++;
		cout<<ans<<endl;
	}	
	//while(1);
	return 0;
}


發佈了51 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章