POJ-1218-醉酒的狱卒

醉酒的狱卒
时间限制:1000MS 内存限制:10000K
提交总数: 31109 录用日期:18783
描述
某所监狱里有一长串n个牢房,每个牢房都紧挨着。每个牢房里都有一个囚犯,每个牢房都被锁上了。
一天晚上,狱卒感到无聊,决定玩游戏。在游戏的第1回合,他喝了一杯威士忌,然后跑下大厅解锁每个牢房。在第2回合,他喝了一杯威士忌,然后跑下
大厅,锁住其他牢房(2、4、6、?)。在第3回合,他喝了一杯威士忌,然后跑下大厅。他每三个牢房(牢房3,6,9,?如果细胞被锁定,他就会解锁它;如果它被解锁,他会锁定它。他
重复了n轮,喝了最后一杯,然后昏倒了。
一些囚犯,可能是零,意识到他们的牢房被解锁,狱卒没有行动能力。他们立即逃脱。
根据牢房的数量,确定有多少囚犯逃脱监狱。

输入

输入的第一行包含单个正整数。这是后面的行数。以下每一行都包含一个介于 5 和 100 之间的单个整数(包括 5 和 100),即单元格 n 的数量。

输出

对于每行,您必须打印出当监狱有 n 个单元格时越狱的囚犯数。

示例输入

2
5
100

示例输出

2
10

思路:我们先列一个表找一下规律   

  POJ-1218-醉酒的狱卒_第1张图片原本牢房全是关闭的,第一次会都打开,第二次会把2的倍数的都打开..........我们找一个数字看6 —2,3,6共三次会对其造成影响,经历开-关-开-关,所以进行操作数为奇数时,最后状态为关,操作数为偶数时最后状态为开。我们只需记录一下从2开始他可以被几个数整除就可以,包括其本身。

#include
using namespace std;
int n,cnt=0;
int main()
{
	int x=0;
	cin>>x;
	while(x--)
    {
    cin>>n;
    if(n>=4) cnt=2;
	else cnt=1; 
    for(int i=6;i<=n;i++)
    {
    	int ans=0;
       for(int j=2;j<=n;j++)
       {
       	if(i%j==0) ans++;
	   }
       if(ans%2==0) cnt++;
	}
	cout<

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

你可能感兴趣的:(ACM训练赛,算法)