小弟刚学习java,很多东西都不知道怎么变通,最近刚学了二维数组,本来想用来解决一些事情的,但奈何初入门道,才疏学浅,苦想一上午依旧没有任何头绪,最终只能用古老的循环解决了!
public static void print(){
int i,j;
int row=100;
for(i=1;i<=row;i++){
for(j=row-1;j>=i;j--){
System.out.print(" ");
}
for(j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
}这种方式比较好理解,但是我想用一个二维数组来实现这个功能,不知道怎么弄,希望哪位路过的高手指点一下,留下代码!感激不尽!
public static void print(){
int i,j;
int row=100;
for(i=1;i<=row;i++){
for(j=row-1;j>=i;j--){
System.out.print(" ");
}
for(j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
}这种方式比较好理解,但是我想用一个二维数组来实现这个功能,不知道怎么弄,希望哪位路过的高手指点一下,留下代码!感激不尽!
int[][] array = new int[row][row];
然后在你打印*的地方使用array[i][j]=1进行附值;
最后循环打印数组中的值,为1的打印*,不为1的打印空格。
如下:
public class PrintTriangle { public static void printIsosceles(int n) {
if (n%2==0) n++;
char[][] cs = new char[n/2+1][n];
for (int i=0; i<cs.length; i++) {
for (int j=0; j<n; j++)
cs[i][j] = j>=(n-2*i-1)/2 && j<(n-(n-2*i-1)/2)? '*' : ' ';
}
for (int i=0; i<cs.length; i++) {
for (int j=0; j<n; j++) System.out.print(cs[i][j]);
System.out.println();
}
}
public static void main(String[] args) {
printIsosceles(6);
}
}