I'm trying to print a spiral matrix using a method that takes in an integer. However, my code on paper works fine, but when I run I get different numbers in place of the number I want.
public class ConstructSpiral{
public static void main(String[] args) {
constructSpiral(3);
}
public static int[][] constructSpiral(int n) {
int[][] matrix = new int[n][n];
int sum = 0;
int i = matrix.length - 1;
int j = matrix[i].length - 1;
for(j = matrix[i].length - 1; j >= 0; j--)
{
sum += sum + 1;
matrix[i][j] = sum;
}
j = 0;
for(i = (matrix.length - 1) - 1; i >= 0; i--) {
sum += sum + 1;
matrix[i][j] = sum;
}
i = 0;
for(j = 1; j < matrix.length; j++)
{
sum += sum + 1;
matrix[i][j] = sum;
}
i = 1;
for(j = 2; j <= i; j--){
sum += sum + 1;
matrix[i][j] = sum;
}
for(i = matrix.length - 1; i >= 0; i--) {
for(j = matrix[i].length - 1; j >= 0; j--)
{
System.out.print(matrix[i][j] + ", ");
}
System.out.println();
}
return matrix;
}
}
In reality, it should print something like
5 6 7
4 9 8
3 2 1
In help would greatly be appreciated.