题目链接: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)的完全平方数个数。
代码:
#include<cstdio>
#include<cmath> int main(){
int t;
scanf("%d",&t);
while(t--){
int x;
scanf("%d",&x);
int ans=sqrt(x*1.0);
printf("%d\n",ans);
}
}