酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。 输入格式: 输入给出正整数n(<10)。 输出格式: 输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a 1 ​ ,a 2 ​ ,⋯,a n ​ 排在序列b 1 ​ ,b 2 ​ ,⋯,b n ​ 之前,如果存在k使得a 1 ​ =b 1 ​ ,⋯,a k ​ =b k ​ 并且 a k+1 ​ <b k+1 ​ 。 用c语言

```c #include <stdio.h> #include <stdlib.h> // 交换两个元素 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } // 对数组进行全排列 void permute(int arr[], int start, int end, int n) { if (start == end) { for (int i = 0; i < n; i++) { printf("%d", arr[i]); } printf("\n"); return; } for (int i = start; i <= end; i++) { swap(&arr[start], &arr[i]); permute(arr, start + 1, end, n); swap(&arr[start], &arr[i]); } } int main() { int n; scanf("%d", &n); int arr[n]; for (int i = 0; i < n; i++) { arr[i] = i + 1; } permute(arr, 0, n - 1, n); return 0; } ``` [2024-11-18 21:37:28 | AI写代码神器 | 275点数解答]

相关提问