最近学c++,用一些简单代码练习
利用递归可以对数列进行全排列,n个数构成的An数列,
每次递归,枚举位置j上可能的数Ai,Ai不属于B
fun(j) //定义函数
n = A.length; //n个元素
if j < n //递归条件
i = 0;
for i to n //枚举元素
if Ai not in B //如果不在已选的元素内
Bj = Ai; //添加
fun(j+1); //递归下一位
else
print B; //递归结束,输出一个排列
c++代码
输出保存在一个文件中
#include<cstdio>
#include<iostream>
#include<vector>
#include<fstream>
#include<sstream>
using namespace :: std;
struct all_sort{ //全排列类
fstream outfile;
vector<char> elem;
vector<char> answer;
all_sort(const string & pos)
{
outfile.open(pos);
string inputs;