通宵教室(ACM水题)

      
1)题目:高校扩招,教室一度变得很紧张。学生白天上自习的地方较少,晚上教室又闲置着,怎样才能充分利用教学资源,扩大学生自习时空呢?通宵教室解决学生自习空间有限和教学资源不充分利用的问题。开放通宵教室促进了学生学习观念的转变,以前课堂内外基本上是听老师安排,现在是学生自觉在学习。晚上学习效率高、生理调节能力强的学生已经尝到了甜头。好学、考研、辅修、创作的学生又有了一片新的学习时空。但是通宵教室对传统的学生管理工作带来了一系列的问题。如果通宵教室的利用率不高的话,将教室的所有灯都打开,还会极大地浪费能源。现在学校对通宵教室灯光使用做一个新的尝试。假设有N个人使用通宵教室,教室里有N盏灯,每个人和每盏灯都有一个编号。开始所有的灯都没打开,第一个人进教室将所有的灯都打开,第二个人将所有的偶数号的灯都关掉,第三个人对所有3的倍数的灯进行如下操作:如果灯开着,就将它关掉,如果灯关着,就将它打开,……,第i个人对所有i的倍数的灯进行如下操作:如果灯开着,就将它关掉,如果灯关着,就将它打开,重复这样的过程,一直到第N个人完成这样的操作。现在,教室管理员向你求助,他希望知道,完成这样的过程后,教室里开着的灯还有多少盏?

Input

有多组测试数据。第一行是一个正整数T(1<=T<=10000),表示有多少组测试数据。
以下有T行,每行一个测试数据,包含唯一的一个正整数N(1 <= n < 2^32,)。

Output

对于每个测试数据,输出一行包含唯一的一个整数:表示完成这样的过程后,教室里开着的灯的盏数。

Sample Input

2 1 2

   2)源代码:
A)c语言:

             #include<stdio.h>
             #include<math.h>
             int main()
            {
             int t,i,a;
             double n;
             scanf("%d",&t);
             for(i=1;i<=t;i++)
              {
            scanf("%lf",&n);
              a=(sqrt(n));
              printf("%d\n",a);

             }
              return 0;
             }

 

      B)c++:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 int t;
  double n;
  cin>>t;
  while(t--)
  {
   cin>>n;
   int s;
   s=int(sqrt(double(n)));
   cout<<s<<endl;
 }
 return 0;


posted @ 2016-08-29 13:37  little——boy  阅读(283)  评论(0编辑  收藏  举报