Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
7.23(游戲:儲物柜難題)一個學(xué)校有100個儲物柜和100個學(xué)生。所有的儲物柜在上學(xué)的第一天都是關(guān)著的。…在所有學(xué)生都經(jīng)過教學(xué)樓并且改變柜子之后,哪些柜子是開著的?
- 題目
- 題目描述
- 破題
- 代碼
- 運行示例
題目
題目描述
7.23(游戲:儲物柜難題)一個學(xué)校有100個儲物柜和100個學(xué)生。所有的儲物柜在上學(xué)的第一天都是關(guān)著的。
隨著學(xué)生進入,第一個學(xué)生S1打開了每個柜子
第二個學(xué)生S2從第二個柜子L2開始,關(guān)閉相隔1的柜子
學(xué)生3(S3)從第三個柜子L3改變每第三個柜子的狀態(tài)(關(guān)閉改打開,打開改關(guān)閉)
S4從L4開始改變每第4個柜子狀態(tài)
S5從L5開始改變每第5個柜子狀態(tài)
……
S100改變L100為止
在所有學(xué)生都經(jīng)過教學(xué)樓并且改變柜子之后,哪些柜子是開著的?顯示所有打開的儲物柜號,以一個空格隔開
提示:使用包含100個布爾型元素的數(shù)組,每個元素都表明一個柜子是開的(true)還是關(guān)的(false)。初始都是關(guān)的
破題
代碼
public class Test7_23 {public static void main(String[] args) {//1. 主方法:聲明一個長度為100的boolean型數(shù)組(默認(rèn)值false,無需賦值)int length = 100;boolean[] list = new boolean[length];//2. 主方法:上述第i個同學(xué)從第i個柜子開始改變每第i個柜子狀態(tài),即用for循環(huán)遍歷boolean型數(shù)組// 調(diào)用自定義方法,傳入boolean數(shù)組和遍歷的次數(shù),用原數(shù)組對象接收方法返回值for (int i = 1 ; i <= 100 ; i++){list = mymethod(list, i);}//3. 主方法:上述操作結(jié)束后,對數(shù)組再進行遍歷,當(dāng)元素值為true,則返回index下標(biāo)值+一個空格for (int i = 0 ; i < 100 ; i++){if (list[i]){System.out.print(i + " ");}}}public static boolean[] mymethod(boolean[] list, int num){//4. 自定義方法:創(chuàng)建一個值為100的int型對象int length = 100;//5. 自定義方法:(假設(shè)傳入的數(shù)組為list,值為num)對傳入的數(shù)組進行遍歷(i從1開始,下標(biāo)為i-1)for (int i = 1 ; i <= 100 ; i++){// 凡是i%num==0的,則修改boolean值if (i % num == 0){list[i-1] = !list[i-1];}}//6. 自定義方法:返回數(shù)組return list;} }運行示例
0 3 8 15 24 35 48 63 80 99總結(jié)
以上是生活随笔為你收集整理的Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第7章:*7.22(
- 下一篇: Java黑皮书课后题第7章:**7.24