
#include <iostream>
#include <fstream>
using namespace std;
char p[11];int n;
void perm(int i);
int main() //a==97
{
int i=0;
ifstream fin ("input.txt");
fin>>n;
for(i=1; i<=n; i++){
p[i]='a'+(i-1);
}
perm(1);
return 0;
}
void perm(int i){
int j,k,t;
ofstream fout ("output.txt");
if(i<n){
for(j=i;j<=n;j++){
t=p[j];
for(k=j;k>i;k--){
p[k]=p[k-1];
}
p[i]=t;
perm(i+1);
for(k=i; k<j; k++){
p[k]=p[k+1];
}
p[j]=t;
}
}else{
for(j=1; j<=n; j++){
fout<<p[j];
}
fout<<endl;
}
}
제가 c++ 로 짠 순열 코드인대 콘솔창에서는 잘 뜨는대 파일애 내보내는 것은 마지막 순열만 출력을합니다. 제 코드가 이상하면 말씀해 주십시오
void perm 함수 내에서
output이 선언됩니다.
즉, 원래 존재하던 output을 다시 선언하여 갱신하는 것으로
들어있던 값이 모두 초기화되고 다시 출력이 되는 겁니다.
output선언을 main 안으로 넣어야 합니다.