Mình có code liệt kê nhị phân như sau:
#include <iostream>
#include <iomanip>
using namespace std;
int n,a[100];
void result(){
for(int i = 1; i <= n; i++){
cout << setw(5) << a[i];
}
cout << endl;
}
void Try(int i){
for(int j = 0; j <= 1; j++){
a[i] = j;
if(i == n){
result();
} else{
Try(i+1);
}
}
}
int main(){
cin >> n;
Try(1);
return 0;
}
Giả sử với n = 3;
ỏ Try: khi i = 3; j = 1; thì vì sao nó có thể gọi tiếp i = 2 được Try(2)