求助!做了一天做不对。

转盘

题目描述

小A同学想要设计一个有n*n个格的轮盘,并往每个格里填入0—n—1之间的一个数。他想要相邻的两个数顺时针组成的有序对不重复出现,请你帮他设计这个轮盘。

要求:输出最小字典序的解。输入格式

输入一个正整数n。 输出格式

输出n*n个数,用空格隔开,表示这个轮盘。

输入样例 1

2
输出样例 1

0 0 1 1

样例解释:
1 0
1 0

【数据规模】
20%的数据:1 < n <= 3
100%的数据 1 < n <= 100

哪里错了啊

#include <bits/stdc++.h>

using namespace std;

void printWheel(int n) {
    vector<vector<int>> wheel(n, vector<int>(n));

    int num = 0;
    for (int i = 0; i < n / 2; i++) {
        for (int j = i; j < n - i; j++) {
            wheel[i][j] = num % n;
            wheel[j][n - i - 1] = num % n;
            wheel[n - i - 1][n - j - 1] = (num + 1) % n;
            wheel[n - j - 1][i] = (num + 1) % n;
            num += 2;
        }
    }

	for(int i=0; i<n; i++){
		cout << wheel[i][n-1] << " ";
	}
	for(int i=n-2; i>=0; i--){
		cout << wheel[n-1][i] << " ";
	}
	for(int i=n-2; i>=0; i--){
		cout << wheel[i][0] << " ";
	}
	for(int i=0; i<n-2; i++){
		cout << wheel[0][i] << " ";
	}

    cout << endl;
}

int main() {
    int n;
    cin >> n;

    printWheel(n);

    return 0;
}
2 个赞