#include <bits/stdc++.h> #include #include #include #include #include #include using namespace std; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { for (int k = 1; k <= n; k++) { cout << i << " " << j << " " << k << endl; } } } }
共 5 条回复
RE,数组访问越界,你int a[7] 最多能只能访问 a[6] 元素,明白?
成功85分
#include <bits/stdc++.h> #include #include #include #include #include #include #include using namespace std; int n; int a[7]; void dfs(int step) { if (step == n + 1) { //输出 for (int i = 1; i <= n; i++) printf("%d ", a[i]); puts(""); //换行 printf("\n"); return; } for (int i = 1; i <= n; i++) //给step位置上选1~n中的每一个数字 { a[step] = i; dfs(step + 1); } } int main() { cin >> n; for (int i = 1; i <= n; i++) scanf("%d ", &a[i]); dfs(1); }
求n 的全排列,你这个只能输出 3 的全排列。考虑用递归来输出全排列。