#include using namespace std; int n; void dfs(int u, string path) { if (u == n) { cout << path << endl; return; } // 吃的布丁个数小于 2、前 2 个吃的布丁中至少有一个不是原味 if (u + 1 <= 2 || path[u - 1] != '0' || path[u - 2] != '0') // 满足以上情况 这次就吃原味 dfs(u + 1, path + "0"); // 吃的布丁个数小于 2、前 2 个吃的布丁中至少有一个不是抹茶 if (u + 1 <= 2 || path[u - 1] != '1' || path[u - 2] != '1') // 满足以上情况 这次就吃抹茶 dfs(u + 1, path + "1"); } int main() { cin >> n; // 一个布丁也没吃 dfs(0, ""); return 0; }