我想制作一个简单的程序,它将从输入中获取位数,并作为输出显示二进制数,写在给定的位上(例如:我输入 3:它显示 000、001、010、011、100、101、110 , 111)。我得到的唯一问题是在第二个for循环中,当我尝试在bitset< bits >中分配变量时,它需要常量。如果您能帮助我找到解决方案,我将非常感激。这是代码:
#include <iostream>
#include <bitset>
#include <cmath>
using namespace std;
int main() {
    int maximum_value = 0,x_temp=10;
    //cin >> x_temp;
    int const bits = x_temp;
    for (int i = 1; i <= bits; i++) {
        maximum_value += pow(2, bits - i);
    }
    for (int i = maximum_value; i >= 0; i--)
        cout << bitset<bits>(maximum_value - i) << endl;
    return 0;
}
