【发布时间】:2022-07-26 22:10:05
【问题描述】:
假设我想得到长度为n 的 1 和 0 的每个组合。比如n = 3,那么我想要
000
001
010
011
100
101
110
111
我最初的想法是使用类似的东西:
#include <iostream>
#include <bitset>
#include <cmath>
int main() {
int n = 3;
for (int i = 0; i < pow(2, n); i++)
std::cout << std::bitset<n>(i).to_string() << '\n';
}
但这不起作用,因为std::bitset 需要一个常量,而我需要n 是可变的(例如,如果我处于循环中)。
我该怎么做?
【问题讨论】:
-
程序员每写一次
pow(2, n),冰川就会融化。请改用1<<n。 -
另外,不要将
pow用于整数幂,它可能会导致一个错误:stackoverflow.com/questions/15851636/…
标签: c++