学生开闭灯问题

简介: 学生开闭灯问题



1, 一个房间有100盏灯(全是关着的),由编号1-100的开关(只有两种状态,开或者关)控制,门外有100个学生,学生按次序一次进入房间,第一个进入的学生切换是1的倍数的开关,第二个学生切换是2的倍数的开关,以此类推,问,第100学生进入切换后,还有多少盏灯是亮着的?*/
public class FaceOne {    private static boolean[] lightStatus=new boolean[100];//默认false       /*        * 朴素计算        * 仅仅逻辑而已        * */    private static int getResult(boolean[] lightStatus){        for(int i=1;i<=100;i++){            for(int j=1;j<=100;j++){                if(j%i==0){                    if(!lightStatus[j-1]){                        lightStatus[j-1]=true;                    }else{                        lightStatus[j-1]=false;
                    }
                }
            }
        }
        int count=0;        for(int i=0;i<100;i++){            if(lightStatus[i]){                count++;
            }
        }        return count;    }
}

/*
 * 以切换一次作为标准 +1    则最后就只有奇数的灯会亮着
 * 排除素数   素数的约数只有1和本身 
 * 排除非素数 具有两两对应的  6  15 等这种数
 * 剩余就是平方数  平方数由于约数中存在一对相同的两个
 * 约数可以相乘得到结果,所有最后的约数个数肯定是奇数
 * 所以 只要向下取  学生数的开方数即可
 * */
private static int getResult(){
    return (int)Math.sqrt(100);
}
public static void main(String[] args) {
    System.out.println(getResult());
}





目录
相关文章
|
6月前
4-2 51单片机点亮LED
4-2 51单片机点亮LED
63 2
|
6月前
|
数据格式
用C51单片机制作LED流水的灯
用C51单片机制作LED流水的灯
|
传感器
Arduino光敏传感器控制LED灯亮度
Arduino光敏传感器控制LED灯亮度
|
6月前
|
编译器 C语言 C++
【51单片机】LED的三个基本项目(LED点亮&LED闪烁&LED流水灯)(3)
【51单片机】LED的三个基本项目(LED点亮&LED闪烁&LED流水灯)(3)
|
6月前
|
C语言
点亮一个LED+LED闪烁+LED流水灯——“51单片机”
点亮一个LED+LED闪烁+LED流水灯——“51单片机”
|
C语言
单片机控制LED灯
单片机控制LED灯
271 0
|
芯片
51单片机--点亮LED灯和流水灯
51单片机--点亮LED灯和流水灯
169 0
|
传感器 算法 API
无人机 LED 灯的闪烁
在 Python 中,可以使用 GPIO 库来控制树莓派(Raspberry Pi)上的 GPIO 引脚,从而实现对 LED 灯的控制。以下是一个简单的 Python 代码示例,可以实现 LED 灯的闪烁、显示文字和数值、循环播放文字等功能:
142 0
|
编译器
【51单片机】点亮LED灯(四种形式)
英文名:Light Emitting Diode。 简称:LED。 应用:LED显示屏、交通信号灯、广告灯、液晶屏背光源等。 特点:节能是LED灯最突出的特点、环保、
784 0
【51单片机】点亮LED灯(四种形式)
单片机点亮LED与LED闪烁
单片机点亮LED与LED闪烁
83 0
单片机点亮LED与LED闪烁