提交时间:2024-01-25 10:16:05
运行 ID: 127794
#include<iostream> #include<iterator> #include<algorithm> using namespace std; void copy(int **map, int sr, int sl, int dr, int dl, int k{ for (int i = 0; i < k; i++){ for (int j = 0; j < k; j++){ map[dr + i][dl + j] = map[sr + i][sl + j]; } } } void func(int **map, int r, int l, int k){ if (k == 1) return; func(map, r, l, k / 2); func(map, r, l + (k / 2), k / 2); copy(map, r, l, r + k / 2, l + k / 2, k / 2); copy(map, r, l + k / 2, r + k / 2, l, k / 2); } int main(){ int k; cin >> k;//QAQ int ** p = new int*[k]; for (int i = 0; i < k; i++) { p[i] = new int[k]; p[0][i] = i + 1; p[i][0] = i + 1; } func(p, 0, 0, k); for (int i = 0; i < k; i++){ copy(p[i], p[i] + k, ostream_iterator<int>(cout, " ")); cout << endl; } return 0; }