提交记录 #545
提交时间:2025-01-08 08:44:58
语言:c
状态:Accepted
编译情况:编译成功
固定测试点#1:
固定测试点#2:
固定测试点#3:
固定测试点#4:
固定测试点#5:
固定测试点#6:
固定测试点#7:
额外测试点#3600:
H13【选做•图形】晕
#include <stdio.h>
void generate_spiral(int n) {
int matrix[n][n];
int left = 0, right = n - 1, top = 0, bottom = n - 1;
int num = 1;
while (left <= right && top <= bottom) {
// 浠庡乏鍒板彸濉厖
for (int i = left; i <= right; i++) {
matrix[top][i] = num++;
}
top++; // 濉厖瀹屼竴琛岋紝椤惰竟涓嬬Щ
// 浠庝笂鍒颁笅濉厖
for (int i = top; i <= bottom; i++) {
matrix[i][right] = num++;
}
right--; // 濉厖瀹屼竴鍒楋紝鍙宠竟鐣屽乏绉?
// 浠庡彸鍒板乏濉厖
for (int i = right; i >= left; i--) {
matrix[bottom][i] = num++;
}
bottom--; // 濉厖瀹屼竴琛岋紝搴曡竟涓婄Щ
// 浠庝笅鍒颁笂濉厖
for (int i = bottom; i >= top; i--) {
matrix[i][left] = num++;
}
left++; // 濉厖瀹屼竴鍒楋紝宸﹁竟鐣屽彸绉?
}
// 鎵撳嵃鍥炲舰鏂归樀
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%3d", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int n;
scanf("%d", &n); // 杈撳叆姝f柟褰㈢殑杈归暱
generate_spiral(n);
return 0;
}