Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想用包容和排斥的原则来找出答案。范围内的数字不能被数组中的数字整除。为此,我们需要选择所有可能的子数组(或使用数学术语子集)。一种方法是取一个长度为 n(数组的长度)的二进制数,并在每次迭代中递增它。现在我们有 1 的地方被取走,其余的被拒绝。这样我们可以确保我们选择数组的所有可能的子数组。我不确定如何实现这一点。请帮忙。
一个数字范围(子数组)可以用一个结构来表示:
struct Range1 { int begin_value; int end_value; }; struct Range2 { int begin_value; unsigned int range_length; };
现在您只需要一个范围数组和使用范围数组的代码。