THE
DRUNK JAILER
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 21957 | Accepted: 13879 |
Description
A certain * contains a long hall of n cells,
each right next to each other. Each cell has a *er 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 *ers, possibly zero, realizes that their cells are unlocked and the jailer is incapacitated. They immediately escape.
Given the number of cells, determine how many *ers escape jail.
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 *ers, possibly zero, realizes that their cells are unlocked and the jailer is incapacitated. They immediately escape.
Given the number of cells, determine how many *ers 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
*ers that escape when the * has n cells.
Sample Input
2 5 100
Sample Output
2 10
Source
和UVa 10110基本相同,只不过这个是求总个数,而Uva那道只要判断最后一个
解题思路参见UVa 10110(http://www.cnblogs.com/lzj-0218/p/3531714.html)
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 5 using namespace std; 6 7 int main() 8 { 9 int kase; 10 11 scanf("%d",&kase); 12 13 while(kase--) 14 { 15 int n; 16 scanf("%d",&n); 17 int tmp=sqrt(n+0.5); 18 printf("%d\n",tmp); 19 } 20 21 return 0; 22 }