(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; } ```

相关文章
|
11月前
|
C语言
【C语言】杨辉三角和练习
【C语言】杨辉三角和练习
56 0
【C语言】杨辉三角和练习
|
10月前
|
算法 C语言
C语言杨氏矩阵
C语言杨氏矩阵
45 0
|
11月前
|
C语言
杨氏矩阵(C语言)
杨氏矩阵(C语言)
51 0
|
11月前
|
C语言
【C语言】杨辉三角
【C语言】杨辉三角
70 0
|
12月前
|
存储 C语言
C语言例题讲解(上)
C语言例题讲解(上)
C语言实现杨辉三角
C语言实现杨辉三角
【C语言】求第n个斐波那契数
斐波那契数:前两个数为1,后面的数为它前两个数之和
C语言_杨辉三角
杨辉三角(也称帕斯卡三角)相信很多人都不陌生,它是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和。
C语言_杨辉三角
|
C语言
杨辉三角(C语言实现)
大家好,我是十七,今天分享杨辉三角的简单实现。
213 0
杨辉三角(C语言实现)
|
C语言
C语言例题22:
题目要求:用指针方式实现strlen函数的功能   #include int mystrlen(char * p); void main() { char ch[10]; printf("输入字符串的内容/n"); ...
661 0