-1

我想用包容和排斥的原则来找出答案。范围内的数字不能被数组中的数字整除。为此,我们需要选择所有可能的子数组(或使用数学术语子集)。一种方法是取一个长度为 n(数组的长度)的二进制数,并在每次迭代中递增它。现在我们有 1 的地方被取走,其余的被拒绝。这样我们可以确保我们选择数组的所有可能的子数组。我不确定如何实现这一点。请帮忙。

4

1 回答 1

0

一个数字范围(子数组)可以用一个结构来表示:

struct Range1
{
  int begin_value;
  int end_value;
};

struct Range2
{
  int begin_value;
  unsigned int range_length;
};

现在您只需要一个范围数组和使用范围数组的代码。

于 2013-11-11T20:18:52.977 回答