POJ_1218_THE DRUNK JAILER
2015-03-31 20:36
357 查看
Description
A certain prison contains a long hall of n cells, each right next to each other. Each cell has a prisoner in it, and each cell is locked.One night, the jailer gets bored and decides to play a game. For round 1 of the game, he takes a drink of whiskey,and then runs down the hall unlocking each cell. For round 2, he takes a drink of whiskey, and then runs down the
hall locking every other cell (cells 2, 4, 6, ?). For round 3, he takes a drink of whiskey, and then runs down the hall. He visits every third cell (cells 3, 6, 9, ?). If the cell is locked, he unlocks it; if it is unlocked, he locks it. He
repeats this for n rounds, takes a final drink, and passes out.
Some number of prisoners, possibly zero, realizes that their cells are unlocked and the jailer is incapacitated. They immediately escape.
Given the number of cells, determine how many prisoners escape jail.
Input
The first line of input contains a single positive integer. This is the number of lines that follow. Each of the following lines contains a single integer between 5 and 100, inclusive, which is the number of cells n.Output
For each line, you must print out the number of prisoners that escape when the prison has n cells.Sample Input
2 5 100
Sample Output
2 10
Source
Greater New York 2002POJ
经研究表明。。。一个cell被开关的次数其实就是它的约数的个数,而只有有奇数个约数的cell最后才会被关闭。又只有完全平方数才会有奇数个数的约数(这种简单的问题不要问为什么。。),所以这题就转变成求n个数中的完全开平方数的个数。。。(这么睿智的想法不是我自己想出来的,是看了某巨巨博客才发现的好方法。代码如下~)
代码
#include <iostream>#include <cmath>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int t,n;
cin>>t;
while(t--)
{
cin>>n;
cout<<(int)sqrt(1.0*n)<<endl;//以前一直直接sqrt(n),到今天才发现这样写是错的。。。真不知道以前那些题是怎么水过去的。。
}
return 0;
}
相关文章推荐
- POJ1218----THE DRUNK JAILER
- 【水题】POJ-1218 THE DRUNK JAILER
- 开灯问题 —— POJ 1218 THE DRUNK JAILER
- poj1218——THE DRUNK JAILER
- poj1218 THE DRUNK JAILER!
- poj 1218:THE DRUNK JAILER
- POJ 1218 THE DRUNK JAILER
- THE DRUNK JAILER POJ 1218
- THE DRUNK JAILER POJ - 1218
- poj 1218 THE DRUNK JAILER
- 假期训练——THE DRUNK JAILER POJ - 1218 模拟
- poj 1218 THE DRUNK JAILER
- poj 1218 THE DRUNK JAILER
- THE DRUNK JAILER(POJ--1218
- poj 1218 THE DRUNK JAILER
- POJ 1218 THE DRUNK JAILER
- POJ 1218 THE DRUNK JAILER
- POJ - 1218 THE DRUNK JAILER
- 统计次数poj1218——THE DRUNK JAILER
- poj1218--THE DRUNK JAILER(求约数的个数)