我想创建一个NxN矩阵,它从命令行矩阵中取N,使得 如果i和j是相对的,则行i和列j中的元素(1≤i,j≤N)是“*”(星形) 素数(即GCD(i,j)= 1)和“”(空格)否则。行号应该是 印在每一行的末尾。
public static boolean[][] relativelyPrime(int N) {
boolean[][] array = new boolean [N+1][N+1];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if ( 1 <= i && i <= N && 1 <= j && j <= N) {
if (gcd(i,j) == 1){
return array;
}
}
}
}
return array;
}
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
boolean[][] matrix = relativelyPrime(N);
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length: j++) {
if (1 <= i && i <= N && 1 <= j && j <= N) {
if (gcd(i, j) == 1) { System.out.println("*" + i);
}
else { System.out.println(" " + i);
}
}
}
}
我正在尝试创建一个如下所示的矩阵:
* * * * * * * * * * 1
* * * * * 2
* * * * * * * 3
* * * * * 4
* * * * * * * * 5
* * * 6
* * * * * * * * * 7
* * * * * 8
* * * * * * * 9
* * * * 10
但即将到来
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*2
2
*2
2
.
.
.
我如何将其放入矩阵
答案 0 :(得分:1)
您应该使用System.out.print
代替System.out.println
,如下所示:
public static void main(String[] args) {
int N = 11;
boolean[][] matrix = relativelyPrime(N);
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length; j++) {
if (1 <= i && i <= N && 1 <= j && j <= N) {
if (gcd(i, j) == 1) { System.out.print("*");
}
else { System.out.print(" ");
}
}
}
System.out.println(i);
}
}
在这种情况下,它会在第一行给你零,以消除这种使用额外的if语句:
}
if(i!=0)
System.out.println(i);
}