第二题 91%
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n == 0){
System.out.println(0);
}else{
int sum = n*n;
long [] array = new long[sum];
array[0] = 1;
array[1] = 1;
for(int i = 2;i<array.length;i++){
array[i] = array[i-1]+array[i-2];
}
int temp = array.length-1;
long [][] arrays = new long[n][n];
int top = 0;
int left = 0;
int right = n-1;
int low = n-1;
while (top<=low || left<=right){
if (top<=low){
for(int i = left;i<=right;i++){
arrays[top][i] = array[temp];
temp--;
}
top++;
}
if(right>=left){
for(int i = top;i<=low;i++){
arrays[i][right] = array[temp];
temp--;
}
right--;
}
if (low>=top){
for(int i = right;i>=left;i--){
arrays[low][i] = array[temp];
temp--;
}
low--;
}
if (left<=right){
for(int i = low;i>=top;i--){
arrays[i][left] = array[temp];
temp--;
}
left++;
}
}
int num = 0;
for(int i = 0;i<arrays.length;i++){
for(int j = 0;j<arrays[0].length;j++){
System.out.print(arrays[i][j]+" ");
num++;
if(num%n == 0){
System.out.println();
}
}
}
}
}