/*编写一程序输出一个数n的所有排列(不能重复)。(写出源程序)
如4的排列为:
4
3 1
2 1 1
2 2
1 1 1 1
1 1 2
1 2 1
1 3
*/
#include
#include
int p=1;
void fun(int max,int n,int *a);
void main()
{
int n;
char again;
do{
do{
cout<<"输入一整数:/n";
cin>>n;
}while(n<1);
int max=n,*a;
a=new int[n];
cout<<"The Result Is:/n";
for(int i=n;i>0;i--)
{
a[0]=i;
fun(max,i,a);
}
delete[] a;
cout<<"是否继续(Y/N):";
cin>>again;
}while(again=='y'||again=='Y');
}
void fun(int max,int n,int *a)
{
if((max-n)==0)
{
for(int k=0;k
一道C++题
最新推荐文章于 2025-08-15 18:53:39 发布