我需要创建一个N-by-N布尔数组a[][]
,如果a[i][j]
和i
是相对素数,则j
为真否则。
我的代码是
public static void main(String[] args){
int N = 12;
boolean[][] a = new boolean[N][N];
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
if(i%j == 0){
a[i][j] = false;
}else{
a[i][j] = true;
}
}
}
printArray(a);
}
public static void printArray(boolean[][] a){
for(int i=0; i<a.length; i++){
for(int j=0; j< a[i].length; j++){
System.out.printf(a[i][j]);
System.out.printf("\n");
}
}
}
线程“main”
中的运行异常为Exceptionjava.lang.ArithmeticException: / by zero
at Array.main(Array.java:8)
我该如何修复我的代码?
答案 0 :(得分:2)
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
if(i%j == 0)
当i
为0且/或j
为0时,您将除以0(i%j
)。
你不能这样做。
试着考虑一下。也许从1而不是0运行i
和j
,然后更正它?