http://cxsjsxmooc.openjudge.cn/2018t2fallsum/003
提示:变化的位数越来越少
思路:递归 + 记忆数据
启示:输出发现只有改变的被输出则完全可以考虑新数组记忆数据
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char s[9],out[9];
int label[9];
int len;
void search(int l)
{
if(l==0)
{
puts(out);
return ;
}
for(int i=0;i<len;i++)
{
if(label[i]==0)
{
out[len-l] = s[i];
label[i] = 1;
search(l-1);
label[i] = 0;
}
else continue;
}
}
int main()
{
gets(s);
len = strlen(s);
search(len);
return 0;
}