关于这道题目的解答方法有很多种,下面提供几种算法仅供参考,如果你有更简单高效的方法,欢迎上传作品,本题目简化了程序,只要求找到其中一个众数即可。
第一种方法:每次取出列表第一项,统计该项数字在列表中出现的次数,记录下来,然后将该项删除。这样重复去依次统计第一项数字出现的次数直到列表为空。最后只需要记录出现次数最多的那个数字即可。如果出现次数最大的这个次数>列表项目总数除以列表中数字的种类,则代表众数存在,否则就没有众数。
比如 2 3 2 3 2 3 出现最多的次数是3次,这个列表总共有6项,只有2种数字2和3,那么3>6/2不成立,所以没有众数。
查看改程序源码:少儿编程网编程大作战8-28(找众数)
第二种方法:先统计出列表中每一项数字出现的次数,存储到另一个列表list2中,这里重点是一一对应,然后从list2中找到最大的那个数,那么该项对应的数就应该是众数,那么如何判断有没有众数,只需要判断list2中所有数是不是都一样,只要有一个不一样那就存在众数。
查看程序源码:scratch算法练习-找众数
第三种方法:先排序,然后找出那个重复最多的数,那个数就是众数了,这种方法用到了排序,排序本身也有很多种方法,在此不详细介绍,如果有兴趣的可以试试。
本站内容未经许可,禁止任何网站及个人进行转载。