/*****************************************************************************/
/* 实验一:递归练习
/* 1、 输入2-10个大于0的正整数,如果输入0作为结束。
/* 2、 输出这几个整数的全排列,每个数之间用半角“,”隔开,
/* 中间不要有空格,每个排列单独一行。
/*****************************************************************************/
#include<iostream>
using namespace std;
template<class T>
void Perm(T list[], int k , int m){
if (k== m){
for (int i = 0; i<=m;i++){
if(i!=m)
cout<<list[i]<<",";
if(i==m)
cout<<list[i];
}
cout<<endl;
}else{
for(int i=k; i<=m;i++){
Swap(list[k],list[i]);
Perm(list, k+1,m);
Swap(list[k],list[i]);
}
}
}
template <class T>
inline void Swap(T& a, T& b){
T temp = a;
a = b;
b = temp;
}
void main(){
int list[10];
int length = 1;
printf("Input\n");
int myInput;
int i=0;
while(true){
cin>>myInput;
if (myInput==0){
i--;
break ;
}else{
list[i] =myInput;
}
i++;
}
printf("Output\n");
Perm(list,0,i);
return ;
}
[C++]数据结构实验01:使用递归实现简单的全排列
最新推荐文章于 2022-09-05 18:23:46 发布