void printIncident(int ct) {
for (int i = 0; i < ct; ++i) {
cout << " ";
}
}
int total = 0;
int fbs(int n) {
total++;
if (n == 2) {
printIncident(--total);
cout << "n = " << n << endl;
return 1;
}
if (n == 1) {
printIncident(--total);
cout << "n = " << n << endl;
return 1;
}
int left = fbs(n - 1);
int right = fbs(n - 2);
printIncident(--total);
cout << "n = " << n << endl;
return left + right;
}
int main() {
fbs(6);
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210624172039929.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MTc5NDMx,size_16,color_FFFFFF,t_70)
void printIncident(int ct) {
for (int i = 0; i < ct; ++i) {
cout << " ";
}
}
int total = 0;
void permutation(vector<int> &data, int pos) {
printIncident(total++);
cout << "[";
for (auto v : data) {
cout << v << " ";
}
cout << "]\n";
if (pos == (int) data.size()) {
--total;
cout << " {";
for (auto v : data) {
cout << v << " ";
}
cout << "}\n";
return;
}
for (int i = pos; i < (int) data.size(); ++i) {
swap(data[i], data[pos]);
permutation(data, pos + 1);
swap(data[i], data[pos]);
}
--total;
}
int main() {
vector<int> data = {1, 2, 3};
permutation(data, 0);
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210624180122521.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MTc5NDMx,size_16,color_FFFFFF,t_70)