博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有趣的Java编程题
阅读量:7024 次
发布时间:2019-06-28

本文共 1740 字,大约阅读时间需要 5 分钟。

  hot3.png

以下是在网上看到的一道题目:

大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制。(开关按一下,灯亮,再按一下灯灭。开关的编号与被控制的灯相同。)开始时,灯是全灭的。现在按照以下规则按动开关。

第一次,将所有的灯点亮。
第二次,将所有2的倍数的开关按一下。
第三次,将所有3的倍数的开关按一下。
以此类推。第N次,将所有N的倍数的开关按一下。
问第N次(N大于等于2,且小于等于100)按完以后,大厅里还有几盏灯是亮的。

 

请编程实现上面的逻辑,以N为参数

我的思路如下:

1,灯的状态变化是什么。灯的开关只有俩种状态,非开即关。所以用一个变量定义一下开关状态,我用数组的值A或B来定义灯的开关,其实我觉得用一个布尔值会更好。

if(i%n==0){	if(lamp[i]=="A"){        lamp[i]="B";}else {	lamp[i]="A";       }}

2,灯的状态如何变。第一次,全变。第二次,2的倍数变一次。第三次,3的倍数变一次。以此类推可以得出:每一次,但凡是次数整数倍的都会变。所以我用取余为0来判断是否进行变换。那么,它的开关次数的逐次递增用一个for循环来解决。

for(int n=1;n

3,在灯的变化结果已经出来时,就是统计最后开着的灯的数量。用判断,累计。

(PS:对于count有定义却没有初始化值,导致一直出错却找不到原因,一般来说定义都有默认初始化的值,但是总有不确定隐患发生,所以还是要谨慎***)

for(int i=0;i<100;i++){		System.out.print(lamp[i]);	if(lamp[i]=="A"){//output the number of lamp how many is open		count=count+1;					}			}System.out.println();System.out.print("the number of open lamp is:"+count);

全部代码显示如下:

import java.util.Scanner;class Demo12{public static void main(String[] args){	change();}	public static void change(){		//I have forget to initialize the value count,that make a false and I spend half an hour to find it.		int count=0;		int N;		String[] lamp={"B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B"};				//define the volue of N as the number of times		System.out.println("please input an number:");		Scanner key=new Scanner(System.in);		N=key.nextInt();		for(int n=1;n

 

 

转载于:https://my.oschina.net/wdpp/blog/756974

你可能感兴趣的文章
警告忽略
查看>>
Java Bean + 注册验证
查看>>
通过mysql 插入一句话***
查看>>
centos 分区扩容
查看>>
JBoss EAP 6 monitoring using remoting-jmx and Zabbix
查看>>
邮件服务器
查看>>
OOAD-设计模式-原型模式
查看>>
Java FAQ(2)
查看>>
JavaScript常用事件总结
查看>>
squid在企业网中的应用
查看>>
主元素 Majority Element
查看>>
关于加密的一些笔记
查看>>
我的友情链接
查看>>
Oracle 数据库查看client的用户登录信息包括ip
查看>>
Kernel Trace System
查看>>
linux文件系统详解
查看>>
我的友情链接
查看>>
ibatis mybatis sql语句配置 符号不兼容 大于号 小于号
查看>>
Alipay 开源 SofaRPC
查看>>
jquery的extend与fn.extend
查看>>