#include <iostream> using namespace std; int p[222]; int n; void dfs(int n, int lev) { if(n < 0) return; if(n == 0) { for(int i = 0; i < lev; ++i) cout << p[i] << " "; cout << endl; return; } else { p[lev] = 1; dfs(n-1, lev + 1); p[lev] = 2; dfs(n-2, lev + 1); } } int main(void) { n = 5; dfs(n, 0); return 0; }