Tìm sách của Lê Minh Hoàng mà đọc giải thuật bài này nhé, coi code không không có hiểu kĩ được đâu :
PHP Code:
#include <iostream>
#include <vector>
int main()
{
int _sNum;
std::cout << " Enter a number to generate algorithm: ";
std::cin >> _sNum;
//Khởi tạo 1 vector có _sNum phần tử = 0
//cũng y chang như mãng vậy int vect[_sNum] = {};
std::vector<int> vect(_sNum, 0);
int pos;
do{
//In ra dãy
for(int x = 0; x < _sNum; ++x)
std::cout << vect[x] << ' ';
std::cout << '\n';
pos = _sNum - 1;
//Nếu phần tử dãy = 1, xét qua thằng khác
while(pos >= 0 && vect[pos] == 1)
pos--;
if(pos >= 0){
//Đặt tại vị trí pos = 1;
vect[pos] = 1;
//Đặt tất cả phần tử bên phải nó = 0
for(int ss = pos + 1; ss < _sNum; ++ss){
vect[ss] = 0;
}
}
//cho đến khi hết dãy
}while(pos >= 0);
return 0;
}