C++代码 递归算法 n个数的全排列 (是任意的,可不连续) 要求: 提示输入数的个数n 然后提示输入这n个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++代码 递归算法 n个数的全排列 (是任意的,可不连续) 要求: 提示输入数的个数n 然后提示输入这n个相关的知识,希望对你有一定的参考价值。

C++代码
递归算法分析
n个数的全排列
(任意的,不一定是连续的)

实现功能,
提示输入数的个数n cin
然后提示输入这n个数() cin
然后cout结果
分不多了,就这点,请赐教

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
using namespace std;
void DFS(int n)

int i;
if(n<1) return;
cout<"请输入第"<<n<<"个数:";
cin>>i;
DFS(n-1);
cout<<"第"<<n<<“个数是:"<<i<<endl;

public static int main()

int n,i;
cout<<"请输入你要输入的个数:";
cin>>n;
DFS(n);
return 0;
参考技术A #include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
using namespace std;
const int MAX=10;
int a[MAX],b[MAX];
bool used[MAX]=false;
void DFS(int deep,int n)

int i;
if(deep==n)

for(i=0;i<n;i++)cout<<b[i]<<" ";
cout<<endl;
return ;

for(i=0;i<n;i++)

if(used[i])continue;
used[i]=true;
b[deep]=a[i];
DFS(deep+1,n);
used[i]=false;


int main()

int n,i;
cin>>n;
for(i=0;i<n;i++)cin>>a[i];
DFS(0,n);
return 0;

追问

哥哥,递归?深度优先搜索算法?

我需要递归呵呵,初学者我是

追答

这个是递归

本回答被提问者采纳
参考技术B C的要吗

c++,全排列输出,递归的应用

在这里插入图片描述
题目:输入n时候,就返回n的全排列,上面是输入了3,返回了3的全排列。

如果没有编写过的小朋友,千万别小看这一题。这一题用了递归,还有回溯算法。虽然是入门级别的算法,但是还得要自己动手编写一下才知道难度所在。

谨慎看答案

在这里插入图片描述
如果看了代码还有什么不懂的,欢迎和我交流。

小Tips:更多算法资料,好玩项目源码,免费领取,关注公众号:诗一样的代码

在这里插入图片描述

以上是关于C++代码 递归算法 n个数的全排列 (是任意的,可不连续) 要求: 提示输入数的个数n 然后提示输入这n个的主要内容,如果未能解决你的问题,请参考以下文章

求n个数的全排列,n不定。用c语言。用于银行家算法中求安全序列

c++,全排列输出,递归的应用

全排列的非递归算法

关于全排的递归算法

Java与算法之 - 数字全排列

Java与算法之 - 数字全排列