【发布时间】:2022-01-08 19:05:07
【问题描述】:
假设有一个集合 U = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 我创建了一个 C++ 程序,我使用了一些逻辑打印出数字 { 1, 3, 6, 7, 9}(我们称之为集合 A),所以剩下的数字是 {2, 4, 5, 8, 1}(让我们称之为集合 B)
和U = A + B
有没有直接打印出 B 组数字 (B = U - A) 的方法? (实际上并没有颠倒我打印 A 组数字的逻辑)
如果我打印偶数,那么剩下的就是奇数,我可以轻松地编写代码来显示奇数。但我想问是否有另一种“直接”的方式来做到这一点?
同样,如果我打印了 1-100 的所有素数,那么我可以反转逻辑并打印未打印的数字(这里,不是素数),但我不是要求那个,我是问有没有直接的方法来打印剩余的一组数字?
PS:我只知道基本的 C++,我还没有开始 DSA(数据结构和算法)仍然欢迎任何级别的答案,我会努力解释它:)
【问题讨论】:
-
@Evg 先生,我不太明白那篇参考文章,我是初学者。
-
在您的示例中,
U对应于自然数的有序列表:1 2 3 4 ... n-1 n。是不是总是这样。如果是,则存在更简单的方法。 -
@Damien 不,这只是一个例子,让我更清楚我在问什么。我只想打印剩余的一组数字,如果我之前打印过素数(不颠倒逻辑),就像非素数一样
标签: c++ algorithm sorting math arraylist