解题思路:
注意事项:
参考代码:
#include <bits/stdc++.h> using namespace std; // 全局变量声明 int n, a[5], b[5], m = 0; int g[5] = {0}; void dfs(int s) { // 如果递归深度达到4,输出当前排列组合 if (s == 4) { for (int i = 0; i < s; i++) { cout << b[i]; // 输出当前排列组合的元素 } cout << " "; // 输出空格分隔符 m++; // 计数器加1 // 如果计数器达到6,换行并重置计数器 if (m == 6) { cout << endl; m = 0; } return; // 结束当前递归 } // 遍历所有可能的元素 for (int i = 0; i < 4; i++) { // 如果元素未被使用 if (!g[i]) { b[s] = a[i]; // 将元素放入当前位置 g[i] = 1; // 标记元素为已使用 dfs(s + 1); // 递归调用,处理下一个位置 g[i] = 0; // 回溯,取消标记 } } } int main() { cin >> n; // 输入测试用例数量 while (n--) { // 输入4个元素 for (int i = 0; i < 4; i++) { cin >> a[i]; } dfs(0); // 调用深度优先搜索函数,从第0层开始 cout << endl; // 每个测试用例结束后换行 } return 0; }
0.0分
0 人评分
人见人爱A+B (C语言代码)浏览:1046 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:543 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:909 |
Wu-求圆的面积 (C++代码)浏览:1994 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1368 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:637 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
【矩阵】 (C++代码)浏览:999 |
1113题解浏览:823 |
链表数据求和操作 (C语言代码)浏览:1035 |