// print.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <vector>
int count = 0;
void printArray(std::vector<int>& v) {
++count;
int sum = 0;
for (auto i : v) {
sum = sum * 10 + i;
}
std::cout << sum << std::endl;
}
//其实只有这个函数有用
void DFS(std::vector<int> &vec, int left) {
if(left==vec.size())printArray(vec);
for (int i = left; i < vec.size(); i++) {
std::swap(vec[i], vec[left]);
DFS(vec, left+1);
std::swap(vec[i], vec[left]);
}
}
int main()
{
std::vector<int> a = { 1,2,3,4,5 };
int mul = 1;
for (int i : a) {
mul *= i;
}
DFS(a, 0);
std::cout << (count == mul)<<", "<<count<<":"<<mul;
}
只有在遍历到搜索树的叶子节点, 才打印数组