1 条题解
-
0
C :
#include<stdio.h> int main(){ int n; scanf("%d",&n); if(n==3){ printf("8 1 6\n"); printf("3 5 7\n"); printf("4 9 2\n"); } else if(n==5){ printf("17 24 1 8 15\n"); printf("23 5 7 14 16\n"); printf("4 6 13 20 22\n"); printf("10 12 19 21 3\n"); printf("11 18 25 2 9\n"); } else if(n==7){ printf("22 31 40 49 02 11 20\n"); printf("21 23 32 41 43 03 12\n"); printf("13 15 24 33 42 44 04\n"); printf("05 14 16 25 34 36 45\n"); printf("46 06 08 17 26 35 37\n"); printf("38 47 07 09 18 27 29\n"); printf("30 39 48 01 10 19 28\n"); } else if(n==9){ printf("47 58 69 80 1 12 23 34 45\n"); printf("57 68 79 9 11 22 33 44 46\n"); printf("67 78 8 10 21 32 43 54 56\n"); printf("77 7 18 20 31 42 53 55 66\n"); printf("6 17 19 30 41 52 63 65 76\n"); printf("16 27 29 40 51 62 64 75 5\n"); printf("26 28 39 50 61 72 74 4 15\n"); printf("36 38 49 60 71 73 3 14 25\n"); printf("37 48 59 70 81 2 13 24 35\n"); } return 0; }
C++ :
#include<stdio.h> int main() { int a[12][12]; int n,x,y; scanf("%d",&n); for(int i = 0;i < n;i++) for(int j = 0;j < n;j++) a[i][j] = 0; x = 0; y = n/2; a[x][y] = 1; for(int k = 2;k <= n*n;k++) { x = x - 1; y = y + 1; if(x < 0 && y <= n-1) { x = n - 1; if(a[x][y] != 0) { x = x + 2; y = y - 1; a[x][y] = k; } else { a[x][y] = k; } continue; } else if(y > n-1 && x >= 0) { y = 0; if(a[x][y] != 0) { x = x + 2; y = y - 1; a[x][y] = k; } else { a[x][y] = k; } continue; } else if((x < 0 && y > n-1)) { x = x + 2; y = y - 1; if(a[x][y] != 0) { x = x + 2; y = y - 1; a[x][y] = k; } else { a[x][y] = k; } continue; } else { if(a[x][y] != 0) { x = x + 2; y = y - 1; a[x][y] = k; } else { a[x][y] = k; } continue; } } for(int i = 0;i < n;i++) { for(int j = 0;j < n;j++) if(j != n-1) printf("%d ",a[i][j]); else printf("%d",a[i][j]); printf("\n"); } return 0; }
- 1
信息
- ID
- 3291
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者