我应该制作一个程序,测试用户输入的矩阵是否为幻方。基本上,我应该将用户输入放入ArrayList中,然后放入2D数组中,以便计算行、列和对角线的总和,看它们是否具有相同的总和。这是我目前的代码。但我无法将ArrayList转换成2D数组。
import java.util.*;
class Square
{
private int[][] square;
private ArrayList<Integer> numbers;
public int numInput;
public Square()
{
numbers = new ArrayList<Integer>();
int[][] square;
numInput = 0;
}
public void add(int i)
{
numbers.add(i);
}
}
public boolean isSquare()
{
numInput = numbers.size();
double squared = Math.sqrt(numInput);
if (squared != (int)squared)
{
System.out.println("Numbers make a square");
return true;
}
else
{
System.out.println("Numbers do not make a square");
return false;
}
}
public String isMagicSquare()
{
for (int row=0; row<numInput; row++)
{
for (int col=0; col<numInput; col++)
{
square[row][col] = number.get(col +( number.size() * row));
}
}
}
}
int[][] square;
声明了一个新的数组。我认为这不是你想要的。你需要在构造函数中初始化this.square
。 - OneCricketeerint[][]
,那么我在 此帖子 上提供了一个只使用List
的答案。 - OneCricketeer