今天要來設計一種算法來查找從一個人到另一個人的病毒鏈,可以算是複習前面的for迴圈,及swap的應用,題目如下:輸入人數,跑出每個人的id,
接著跑出誰接觸到誰,最後顯示整個病毒的傳播鏈。
Step1 使用scanner方法,取得使用者輸入的整數int = n。
Step2 建立一個陣列a,此陣列的大小由使用者數入的數來決定。
Step3 進入第一個for迴圈,for迴圈條件式 int i = 0; i < a.length; i++。
且讓a[i] = i。
Step4 進入第二個for迴圈,宣告一個整數j並產生n個亂數,也就是g3用者輸入的數字個數,並用swap方法讓a[j] = a[i]。
Step5 進入第三個for迴圈,首先先輸出i。
Step6 進入第四個for迴圈,將輸出的i打成亂數,代表各個居民接處到的人。
Step7輸出傳播鏈,當接觸的人已經自成一個傳播鏈時停止,也就是c = b時跳出迴圈,利用do-while。
程式全碼如下:
輸出結果:輸入人數顯示出個脆接觸過的人及傳播鏈。