iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
自我挑戰組

JAVA的實作與應用系列 第 28

Day28 傳播鏈程式實作

今天要來設計一種算法來查找從一個人到另一個人的病毒鏈,可以算是複習前面的for迴圈,及swap的應用,題目如下:輸入人數,跑出每個人的id,
接著跑出誰接觸到誰,最後顯示整個病毒的傳播鏈。

Step1 使用scanner方法,取得使用者輸入的整數int = n。
https://ithelp.ithome.com.tw/upload/images/20211010/20140456gBFq1hIp2f.png

Step2 建立一個陣列a,此陣列的大小由使用者數入的數來決定。
https://ithelp.ithome.com.tw/upload/images/20211010/201404569TqBGIz7uh.png

Step3 進入第一個for迴圈,for迴圈條件式 int i = 0; i < a.length; i++。
且讓a[i] = i。
https://ithelp.ithome.com.tw/upload/images/20211010/20140456VrMo2qzWzk.png

Step4 進入第二個for迴圈,宣告一個整數j並產生n個亂數,也就是g3用者輸入的數字個數,並用swap方法讓a[j] = a[i]。
https://ithelp.ithome.com.tw/upload/images/20211010/20140456gKxfCIFnrs.png

Step5 進入第三個for迴圈,首先先輸出i。
https://ithelp.ithome.com.tw/upload/images/20211010/201404564rQonysQ5T.png

Step6 進入第四個for迴圈,將輸出的i打成亂數,代表各個居民接處到的人。
https://ithelp.ithome.com.tw/upload/images/20211010/20140456UIlDiFliMy.png

Step7輸出傳播鏈,當接觸的人已經自成一個傳播鏈時停止,也就是c = b時跳出迴圈,利用do-while。
https://ithelp.ithome.com.tw/upload/images/20211010/20140456n9XYugn6fB.png

程式全碼如下:
https://ithelp.ithome.com.tw/upload/images/20211010/201404560dSgAh3HHa.png

輸出結果:輸入人數顯示出個脆接觸過的人及傳播鏈。
https://ithelp.ithome.com.tw/upload/images/20211010/20140456K07h7Hir20.png


上一篇
Day 27 Inheritance
下一篇
Day 29 Polymorphism
系列文
JAVA的實作與應用30

尚未有邦友留言

立即登入留言