我正在使用c ++,但实际上只需要知道如何做到这一点我应该能够提出自己的代码。 我知道有112种可能的组合,但我试图找到一种方法来生成它们所有可能的数组,而不必手动完成。 它不必是一个数组,如果需要我可以轻松地使它成为一个数组,只需要生成0到128之间的所有二进制数,其中包含5位数。
bool/int bit[8];
无论在哪里工作
bit[7]+bit[6]+bit[5]+bit[4]+bit[3]+bit[2]+bit[1]+bit[0]=5;
bool/int bits[8][112];
试图弄清楚如何在循环中执行此操作 我一直在谷歌搜索,没有发现任何接近我想做的事情,我们将非常感谢任何帮助。
答案 0 :(得分:0)
我想通了
#include <iostream>
using namespace std;
int binArray[8]={0,0,0,0,0,0,0,0};
int main(){
for(int i=0;i<112;i++){
do{
binArray[7]++;
for(int b=7;b>-1;b--){
if(binArray[b]==2){
binArray[b]=0;
binArray[b-1]++;
}
}
}
while(binArray[7]+binArray[6]+binArray[5]+binArray[4]+binArray[3]+binArray[2]+binArray[1]+binArray[0]!=5);
for(int j=0;j<8;j++){
cout << binArray[j] << " ";
}
cout << endl;
}
return 0;
}