gistfile1.txt import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()) { int n = sc.nextInt(); int[][] arr1=new int[n][n]; funny1(arr1); //funny2(arr1); //fun
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()) { int n = sc.nextInt(); int[][] arr1=new int[n][n]; funny1(arr1); //funny2(arr1); //funny3(arr1); for(int i=0;ii;j--){ if(a[n-i-1][j] ==0) a[n-i-1][j] = m++; } //向上 for(j=n-i-1;j>i;j--){ if(a[j][i] ==0) a[j][i] = m++; } } if(n%2==1) a[n/2][n/2]=m; } public static void funny2(int[][] A){ //两个对角线分成四个区域,分为上下左右 int n=A[0].length; A[0][0]=1; //沿对角线自左上到方阵中心的值 for(int i=0;i =0;i--){ for(int j=n-i-1;j n/2;i--){ for(int j=i;j>n-i-1;j--){ A[i][j-1]=A[i][j]+1; } } //左,向上递增 for(int i=0;i i+1;j--){ A[j-1][i]=A[j][i]+1; } } //处理输入的值为偶数的情况 if(n%2==0){ A[n/2][n/2-1]=n*n; } } public static void funny3(int[][] data){ //看成封闭的贪吃蛇游戏,左上角进入,路过的地方赋值,顺时针不断转圈,最后填满屏幕 //两个转向条件:碰到屏幕边缘;碰到自身,即若不转向,会覆盖原来赋值过的地方 int x = -1, y = 0, cur = 0; int count=data[0].length; int max=count*count; while (cur < max) { for (; x + 1 < count && data[x + 1][y] == 0; data[y][++x] = ++cur);//向右 for (; y + 1 < count && data[x][y + 1] == 0; data[++y][x] = ++cur);//向下 for (; x - 1 >= 0 && data[y][x - 1] == 0; data[y][--x] = ++cur);//向左 for (; y - 1 >= 0 && data[y - 1][x] == 0; data[--y][x] = ++cur);//向上 } } }