下一个更大的整数在 C++ 中具有更多的设置位

在本教程中,我们将编写一个程序来查找下一个具有更多设置位的更大整数。

让我们看看解决问题的步骤。

  • 初始化数字n。

  • 编写一个函数来获取设置位数的计数。

  • 用n + 1初始化迭代变量。

  • 写一个无限循环。

    • 检查大于n的数字的设置位数。

    • 找到后返回号码。

示例

让我们看看代码。

#include <bits/stdc++.h>

using namespace std;

int getSetBitsCount(int n) {

   int count = 0;

   while (n) {

      if (n % 2 == 1) {

         count += 1;

      }

      n /= 2;

   }

   return count;

}

int getNextGreaterElementWithSameSetBits(int n) {

   int setBitsCount = getSetBitsCount(n);

   int i = n + 1;

   while (true) {

      if (setBitsCount + 1 == getSetBitsCount(i)) {

         return i;

      }

      i += 1;

   }

}

int main() {

   int n = 124;

   cout << getNextGreaterElementWithSameSetBits(n) << endl;

   return 0;

}

输出结果

如果你运行上面的代码,那么你会得到下面的结果。

125

结论

如果您对本教程有任何疑问,请在评论部分提及。

以上是 下一个更大的整数在 C++ 中具有更多的设置位 的全部内容, 来源链接: utcz.com/z/331759.html

回到顶部