(C语言)全排列问题

简介: (C语言)全排列问题

Description

输出自然数 11 到 nn 所有不重复的排列,即 nn 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

Input

第一行为一个整数nn

Output

由11至nn组成的所有不重复的数字序列,每行一个序列。

每个数字之间由空格隔开

Sample Input 1

3

Sample Output 1

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

Hint

$$1 \le n \le 91≤n≤9

$$ ## 题解 ```c #include<stdio.h>//uncle-lu /* 对当前的位置进行深度优先搜索,找到每个可以填进去的数进行尝试。搜完了这个位置以后回溯继续搜。 */ int n; int line[10]; int visit[10]; void print() { for(int i=1; i<=n; ++i) printf("%d ", line[i]); printf("\n"); return ; } void dfs(int x) { if(x>n) { print();//objective 4一共n个数都搜完了我们应该干啥? } for(int i=1; i<=n; ++i) { if(!visit[i]) { visit[i] = 1;//标记为1 line[x] = i;//答案数组将这个数记录 dfs(x+1); visit[i] = 0;//重新标记为0以便回溯的时候再次搜索 } } return; } int main() { scanf("%d",&n); dfs(1);//objective 3我们应该先搜哪里? return 0; } ```

相关文章
C语言实现杨辉三角
C语言实现杨辉三角
|
C语言
杨辉三角(C语言实现)
大家好,我是十七,今天分享杨辉三角的简单实现。
281 0
杨辉三角(C语言实现)
|
C语言
【C语言】杨辉三角和练习
【C语言】杨辉三角和练习
83 0
|
C语言
【C语言】杨辉三角
【C语言】杨辉三角
110 0
|
4月前
|
存储 算法 C语言
【C语言】二分查找算法
【C语言】二分查找算法
|
C语言
C语言练习之二分法
C语言练习之二分法
88 0
|
8月前
|
C语言
【c语言】汉诺塔问题详解(c语言递归函数)
【c语言】汉诺塔问题详解(c语言递归函数)
77 0
【C语言】求第n个斐波那契数
斐波那契数:前两个数为1,后面的数为它前两个数之和
|
C语言
C语言练习之求第n个斐波那契数
C语言练习之求第n个斐波那契数
105 0
字符串逆序(递归实现)——C语言
字符串逆序(递归实现)——C语言
字符串逆序(递归实现)——C语言

热门文章

最新文章