#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
int a[100] = {0};
int n;
int cnt=0;
void dfs(int k)
{
if(k >= n)
{
for(int i = 0;i < n;i++)
{
cout<<a[i]<<" ";
}
cnt++;
cout<<endl;
}
else
{
for(int i = 1;i <= n;i++)
{
a[k] = i;
dfs(k + 1);
}
}
}
int main()
{
while(cin>>n)
{
cnt=0;
int k = 0;
dfs(k);
cout<<cnt<<endl;
}
system("pause");
return 0;
}
#include <string.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
int a[100] = {0};
int n;
int cnt=0;
void dfs(int k)
{
if(k >= n)
{
for(int i = 0;i < n;i++)
{
cout<<a[i]<<" ";
}
cnt++;
cout<<endl;
}
else
{
for(int i = 1;i <= n;i++)
{
a[k] = i;
dfs(k + 1);
}
}
}
int main()
{
while(cin>>n)
{
cnt=0;
int k = 0;
dfs(k);
cout<<cnt<<endl;
}
system("pause");
return 0;
}
本文介绍了一种使用递归实现的全排列算法,并通过C++代码实例详细解释了算法的实现过程。代码中包括了输入整数n,输出n个元素的所有可能排列,以及计数排列总数的功能。
942

被折叠的 条评论
为什么被折叠?



