點擊查看題目詳細要求:scratch算法練習-找衆數

關于這道題目的解答方法有很多種,下面提供幾種算法僅供參考,如果你有更簡單高效的方法,歡迎上傳作品,本題目簡化了程序,只要求找到其中一個衆數即可。

scratch算法練習-找衆數【解答】

第一種方法:每次取出列表第一項,統計該項數字在列表中出現的次數,記錄下來,然後將該項刪除。這樣重複去依次統計第一項數字出現的次數直到列表爲空。最後只需要記錄出現次數最多的那個數字即可。如果出現次數最大的這個次數>列表項目總數除以列表中數字的種類,則代表衆數存在,否則就沒有衆數。

比如 2 3 2 3 2 3 出现最多的次数是3次,这个列表总共有6项,只有2种数字2和3,那么3>6/2不成立,所以没有众数。

查看改程序源碼:少儿编程网編程大作戰8-28(找众数)

scratch算法練習-找衆數【解答】

第二種方法:先統計出列表中每一項數字出現的次數,存儲到另一個列表list2中,這裏重點是一一對應,然後從list2中找到最大的那個數,那麽該項對應的數就應該是衆數,那麽如何判斷有沒有衆數,只需要判斷list2中所有數是不是都一樣,只要有一個不一樣那就存在衆數。

查看程序源碼:scratch算法練習-找衆數

第三種方法:先排序,然後找出那個重複最多的數,那個數就是衆數了,這種方法用到了排序,排序本身也有很多種方法,在此不詳細介紹,如果有興趣的可以試試。