习题解析之:查找特征数
【问题描述】
在一组空格分隔的自然数中,有些数出现的次数与该数相等,找出符合这个特征的数,并输出其中的最大数。如果不存在这样的数,则输出-1。
输入格式
在一行中输入若干个自然数,数字之间用空格分隔
输出格式
输出满足上述条件的数,如果不存在这样的数,则输出-1
示例
输入:
3 3 3 8 8 8 8 8 8 8 8 1 4 5 6 7
输出:
8
【编程思路1】
由输入的无序整数序列创建一个列表 ls,用列表 ls 中的元素创建一个集合 s (s = set(ls)),再用推导式 [x for x in s if ls.count(x) == x] 创建一个列表 lt,lt 列表中的元素就是 ls 列表中出现次数和其数值相等的整数。
若 lt 非空,输出其最大值;若 lt 为空,输出 -1 。
编写的源程序如下:

【编程思路2】
由输入的无序整数序列创建一个列表 ls。创建一个空字典 d ,遍历 ls 中的各元素,将元素的值作为键,该元素出现的次数作为值,加入到字典 d 中。
再创建一个空列表 lt ,遍历字典 d 中的键值对,将键和值相等的键值对的键作为元素插入到列表 lt 中。
若 lt 非空,输出其最大值;若 lt 为空,输出 -1 。
编写的源程序如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/985665.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!