您的位置:首页 > 其它

【全排列 - 递归】

2016-03-28 20:07 399 查看
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int total = 0;
void perm(int num[],int k,int m)
{
if(k == m-1)
{
for(int i = 0;i < m;i++)
printf("%d ",num[i]);
printf("\n");
total++;
}
else
{
for(int i = k;i < m;i++)
{
swap(num[k],num[i]);
perm(num,k+1,m);
swap(num[k],num[i]);
}
}
}
int main()
{
int num[100],n;
scanf("%d",&n);
for(int i = 0;i < n;i++)
num[i] = i+1;
perm(num,0,n);
printf("排列总数:%d\n",total);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C