public class Helicalarray { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.println("please input a N:"); int n= input.nextInt(); int[][] ints = generateMatrix(n); for (int i = 0; i <ints.length ; i++) { for (int j=0;j<ints[i].length;j++) { if (ints[i][j]<10) System.out.print(ints[i][j]+" "); else { System.out.print(ints[i][j]+" "); } } System.out.println(); } } public static int[][] generateMatrix(int n) { int [][]res=new int[n][n]; int up=0,down=n-1,left=0,right=n-1,index=1; while(index<=n*n) { for (int i = left; i <=right ; i++) { res[up][i]=index++; } up++; for (int i = up; i <=down; i++) { res[i][right]=index++; } right--; for (int i = right; i>=left ; i--) { res[down][i]=index++; } down--; for (int i = down; i >=up ; i--) { res[i][left]=index++; } left++; } return res; } }