题目:
集合中素是互异的,输入一系列整数作为一个集合中的素,计算集合中素的个数。
输入格式:
第一行是一个整数N(0≤N≤10 5 ,接下来有N行,每行一个整数(范围[−10 5 ,105 ]),表示集合中的素。
输出格式:
一个整数,表示集合中素的个数。
输入样例:
4
2
2
1
3
输出样例:
3
题解:
首先,题目说的很明确,集合中的素是互异的,也就是说,没有相同的素。比如1 1 1 1 2,输入了5个数但是实际上集合的素数目是2。
那么,什么样子的数据结构才有这样的性质呢,我们可以用一个二叉搜索树。。。
在C++的STL里面有个叫做set的模板,python里也有个set,Java里有个HashSet的泛型,这都是已经实现好的集合,直接拿来用就可以了。
当然,这个集合是个有序集合。
没啥好说的,直接上代码吧
C++版:
#include <bits/stdc++.h> using namespace std; int main(int argc, char const *argv[]) {
//创建集合 set<int> ans; int n ; cin >> n; //向集合中插入素 while(n--) {
int a; cin >> a; ans.insert(a); } //输出集合大小 cout << ans.size(); return 0; }
Python版:
n = int(input()) ans = set() while n: ans.add(int(input())) n -= 1 print(len(ans))
Java版:
import java.util.HashSet; import java.util.Scanner; / * Main */ public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); HashSet<Integer> ans = new HashSet<>(); int n = in.nextInt(); while(n > 0) {
int e = in.nextInt(); ans.add(e); n--; } System.out.println(ans.size()); in.close(); } }
今天的文章
离散数学 习题篇 —— 集合中有多少个素分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/84529.html