2 条题解

  • 0
    @ 2025-7-8 20:36:57

    说明

    韩女士沉迷于关于光的游戏。

    有 N 个灯排成一行 S[1...N],我们可以通过按下它们的按钮来更改它们的状态(打开和关闭)。但是它们有一个特点,当你按下 light s[i] (0<=i<=N) 时,那些数字为 i 的倍数的灯也会改变它们的状态。例如:有 10 盏灯 s[1...10] 的初始状态为关闭。当她按下灯 s[2](它将打开)时,灯 s[2]、s[4]、s[6]、s[8] 和 s[10] 也将打开。当她再次按下 s[4] 时,灯 s[4] 和 s[8] 将关闭。现在韩老师有 N 个灯都关着,她会从 1 到 N 按一下,最后会打开多少个灯呢?

    输入格式

    输入将包含多个测试用例,每个用例将只包含一个数字 N(1 <= N <= 1,000,00)。

    输出格式

    每个案例的单行整数表示最终打开的灯的数量。

    • 0
      @ 2024-9-21 15:47:56

      C :

      #include<stdio.h>
      void main()
      {
      	int N,i,count=0;
          while (scanf("%d",&N)!=EOF)
      	{	
      		for(i=1;i<=N;i++)
      	{	
          	
      		if(i*i<=N)
      		count+=1;
      		else
      		break;	
      }printf("%d\n",count);
      		count=0;
      	}
      
      }
      
      
      
      
      

      C++ :

      #include <iostream>
      #include <cstdio>
      #include <cmath>
      using namespace std;
      int main()
      {
      
          int a;
          while(scanf("%d",&a)!=EOF)
          {
              int b=sqrt(a);
             cout<<b<<endl;
      
          }
          return 0;
      }
      
      
      • 1

      信息

      ID
      566
      时间
      2000ms
      内存
      128MiB
      难度
      10
      标签
      递交数
      1
      已通过
      1
      上传者