0
点赞
收藏
分享

微信扫一扫

【全排列】

那小那小 2022-04-17 阅读 61
c++

忘了转载谁的了

#include<iostream>
using namespace std;
void swap(int &a,int  &b)
{
	int temp;
	temp = a;
	a = b;
	b = temp;
}
int i, k, m;
void qpl(int *list,int k,int m)
{
	if (k == m)//定义k为第几个数,m为数组长度,如果k=m,则它们不进行交换,进入循环输出即可
	{
		for (i = 0;i <= m;i++)
		{
			cout << list[i];
		}
         cout<<endl;
	}
	else
	{
		for (int i = k;i <= m;i++)//这个循环是让他最开始一个大循环,然后从第一个数慢慢输出,然后交换位置;
		{
			swap(list[i], list[k]);
			qpl(list, k + 1, m);     //迭代很多次最后就能输出
			swap(list[i], list[k]);
		}   
	}
}
int main()
{
	int n;
	cin >> n;
	int *list=(int*)malloc(n*sizeof(int));
	for(i=0;i<n;i++)
	{ 
		cin >> list[i];
	}
	qpl(list, 0, n-1);
	return 0;
}


举报

相关推荐

0 条评论