// 这是我能想到的最简单的实现方法了,如果非要输出的是数字形式的话要麻烦的多
// 记得头文件要加上
// 该递归函数输出结果规律如下:
// 当w = 1,输出1
// 当w = 2,输出2 (1) (1)
// 当w = 3,输出3 (211) (211
// 可以发现每次就是将w-1的结果复制一遍,然后在开头加上w,即w(w-1的输出)(w-1的输出)
void p(int w)
{
if (w < 0) return ;
string s = "1", si = "0";
for (int i = 2; i <= w; ++i)
{
s += s; // 将w-1的输出复制
si[0] ='0' + i;
s = si + s; // 将w放在已经复制好的上次结果的开头
}
cout << s;
}