离散数学 习题篇 —— 集合中有多少个元素

离散数学 习题篇 —— 集合中有多少个元素题目 集合中素是互异的 输入一系列整数作为一个集合中的素 计算集合中素的个数

题目:

集合中素是互异的,输入一系列整数作为一个集合中的素,计算集合中素的个数。

输入格式:

第一行是一个整数N(0≤N≤10 5 ​,接下来有N行,每行一个整数(范围[−10 5 ​​,10​5 ​​ ]),表示集合中的素。

输出格式:

一个整数,表示集合中素的个数。

输入样例:

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(); } } 
今天的文章 离散数学 习题篇 —— 集合中有多少个素分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-12 10:30
下一篇 2024-12-12 10:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/84529.html