练习的任务是创建一个像Example一样的方法。(我们必须使用for循环。但是如果你知道如何以另一种方式进行,那么它也会非常有趣。)输入数字可以是任何
示例: 输入: 3 输出
**1**
*121*
12321
*121*
**1**
我的例子:
public static void main(String[] args) {
printMatrix(5);
}
public static void printMatrix (int n) {
int d = n +(n-1);
for (int i = 0; i < n ; i++)
{
for(int j = 1; j <=d; j++){
int abs = Math.abs(j-n);
System.out.print(abs>i ? "*" : i-abs+1);
}
System.out.println("");
}
我的输出:
****1****
***121***
**12321**
*1234321*
123454321
我无法进行下一步,将其颠倒过来。任何人都有想法?
答案 0 :(得分:0)
我已经解决了这个问题,但我认为这不是一个完美的解决方案。有没有人有另一种方法来解决这个问题?
public static void main(String[] args) {
printMatrix(5);
}
public static void printMatrix (int n) {
int d = n +(n-1);
int k = n*2;
int g = -1;
for (int i = 0; i < d ; i++)
{
if(i<n){
g++;
}
else{k=n*2;
g--;}
for(int j = 1; j <=d; j++){
if (i < n){
int abs = Math.abs(j-n);
System.out.print(abs>i ? "*" : i-abs+1);
}
else{
k--;
int abs = Math.abs(k-n);
System.out.print(abs>g ? "*" : g-abs+1);
}
}
System.out.println("");
}
}
}
<强>输出:强>
****1****
***121***
**12321**
*1234321*
123454321
*1234321*
**12321**
***121***
****1****