7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?

  • 题目
  • 题目描述
    • 破题
  • 代码
    • 运行示例

题目

题目描述

7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。
随着学生进入,第一个学生S1打开了每个柜子
第二个学生S2从第二个柜子L2开始,关闭相隔1的柜子
学生3(S3)从第三个柜子L3改变每第三个柜子的状态(关闭改打开,打开改关闭)
S4从L4开始改变每第4个柜子状态
S5从L5开始改变每第5个柜子状态
……
S100改变L100为止
在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?显示所有打开的储物柜号,以一个空格隔开
提示:使用包含100个布尔型元素的数组,每个元素都表明一个柜子是开的(true)还是关的(false)。初始都是关的

破题

  1. 主方法:声明一个长度为100的boolean型数组(默认值false)
  2. 主方法:上述第i个同学从第i个柜子开始改变每i个柜子状态,即用for循环遍历boolean型数组,调用自定义方法,传入boolean数组和遍历的次数,用原数组对象接收方法返回值
  3. 主方法:上述操作结束后,对数组再进行遍历,当元素值为true,则返回index下标值+一个空格
  4. 自定义方法:创建一个值为100的int型对象
  5. 自定义方法:(假设传入的数组为list,值为num)对传入的数组进行遍历(i从1开始,下标为i-1),凡是i%num==0的,则修改boolean值
  6. 自定义方法:返回原数组

代码

public class Test7_23 {public static void main(String[] args) {//1. 主方法:声明一个长度为100的boolean型数组(默认值false,无需赋值)int length = 100;boolean[] list = new boolean[length];//2. 主方法:上述第i个同学从第i个柜子开始改变每第i个柜子状态,即用for循环遍历boolean型数组// 调用自定义方法,传入boolean数组和遍历的次数,用原数组对象接收方法返回值for (int i = 1 ; i <= 100 ; i++){list = mymethod(list, i);}//3. 主方法:上述操作结束后,对数组再进行遍历,当元素值为true,则返回index下标值+一个空格for (int i = 0 ; i < 100 ; i++){if (list[i]){System.out.print(i + " ");}}}public static boolean[] mymethod(boolean[] list, int num){//4. 自定义方法:创建一个值为100的int型对象int length = 100;//5. 自定义方法:(假设传入的数组为list,值为num)对传入的数组进行遍历(i从1开始,下标为i-1)for (int i = 1 ; i <= 100 ; i++){// 凡是i%num==0的,则修改boolean值if (i % num == 0){list[i-1] = !list[i-1];}}//6. 自定义方法:返回数组return list;}
}

运行示例

0 3 8 15 24 35 48 63 80 99

Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?相关推荐

  1. Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)

    6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...

  2. Java黑皮书课后题第7章:*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目

    7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目 题目 题目描述 破题 代码 运行实例 题目 题目描述 7.22(计算一个字符串中大写字母的数 ...

  3. Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数

    6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...

  4. Java黑皮书课后题第2章:2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加

    2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加 题目 题目描述 运行示例 题目槽点与破题 题目槽点 破题 如何提取数字 代码块 方法评价 题目 题目描述 2.6 ...

  5. Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的)

    Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的) 题目 破题 代码 Test9 Test9_Regular ...

  6. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  7. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  8. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  9. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

最新文章

  1. PREDATOR: 低重叠三维点云的配准方法(CVPR2021)
  2. 盘点 2022 云原生实战峰会产品发布
  3. linux ls使用方法,Linux/Ubuntu ls命令详解使用格式和方法
  4. Java面试必学-吐血推荐
  5. c.语言2017试卷,2017年全国计算机等级考试二级C 语言真题及答案7
  6. C# - 创建List属性的简单方法
  7. array.slice_Ruby中带有示例的Array.slice()方法
  8. linux 的 cat more less 命令有什么区别
  9. 电脑重装系统后usbcleaner怎么格式化u盘
  10. 计算机没有光驱降无法启动,windows 未能启动 原因可能是最近更改了硬件或软件 没有光驱怎么办...
  11. 51单片机入门(4)蜂鸣器(无源+有源)
  12. windows虚机使用IIS服务搭建ftp
  13. php获取微博热搜,爬取微博热搜top50(示例代码)
  14. 深度学习在羚珑中的探索 -- 模板风格分类识别
  15. 在农业道路上越扎越深,拼多多看到了什么?
  16. Augmented Dickey–Fuller (ADF)Test 详解
  17. 计算机网络常见面试题整理
  18. 企业高管跳槽区块链,跳的是“坑”还是“槽”?
  19. smzdm 扫地机器人_2020年双十二有什么值得购买的扫地机器人,科沃斯T8、米家1T、石头T7,还有什么推荐的品牌吗?...
  20. 超市零售数据分析-大数据项目

热门文章

  1. 游戏服务器的架构演进
  2. php双分支语句【三个数排序】
  3. 系统级性能分析工具 — Perf
  4. 经典文章解释apache与tomcat!看完秒懂
  5. Visual Studio 2008中常用快捷键
  6. ubuntu常见问题解决方法
  7. python学习之自习语法(20180626_update)
  8. [Trie] Luogu P2992 [USACO08DEC]秘密消息Secret Message
  9. android BluetoothAdapter无法搜索到蓝牙问题
  10. nginx 日志获取不到远程访问ip问题解决