POJ 1218 THE DRUNK JAILER(类开灯问题,完全平方数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2188

题目大意:n为5-100之间的一个数,代表有多少间牢房,刚开始所有房间打开,第一轮2的倍数的房间(打开的关上,关上的打开),第二轮3的倍数,第四轮4的倍数......n轮,最后有几间牢房打开的 。

解题思路:开灯问题,跟HDU 2053差不多,只要牢房编号是完全平方数,那囚犯就可以逃出去。这里有解释:http://www.cnblogs.com/fu3638/p/7507239.html

     sqrt(n)就是n之内(包括n)的完全平方数个数。

代码:

 1 #include<cstdio>
 2 #include<cmath>
 3 
 4 int main(){
 5     int t;
 6     scanf("%d",&t);
 7     while(t--){
 8         int x;
 9         scanf("%d",&x);
10         int ans=sqrt(x*1.0);
11         printf("%d
",ans);
12     }
13 }
原文地址:https://www.cnblogs.com/fu3638/p/7507315.html