这种算是入门级的 我只提供给你思路。
但凡打印图形的。
最外层for循环 肯定是层数。比如图中这个 1,2,3,4,5 5层
for(int i = 0 ; i < 5 ;i++){
... do sth
}
2.里面的 肯定先打印空格 再打印*。
空格 4 3 2 1 0个 for(int j=0;j<5-i;j++){
syso(" ");
}
3.至于数字之间的空格 你可以直接打印i+" " 反正是循环
2和3并列 在1的for循环里面
纯手打 忘采纳
public static void main(String[] args) {
// TODO Auto-generated method stub
/* 输出如下图形
*
* *
* * *
* * * *
* * * * *
*/
//两种思路:
//思路一:找规律,每一行由空格和*组成,判断哪个位置是什么符号
int level = 5;
for(int i=1; i<=level; i++){ //按行输出
String s = "";
int k = 1;
for(int j=1; j<=(2*level-1); j++){
//起始*的位置、level为偶数时,奇数行偶数位为*;level为奇数时,奇数行奇数位为*、控制*的数量
if((j+i)>level & (j+i+level)%2==1 & k<=i){
s += "*";
k++;
}else{
s += " ";
}
}
System.out.println(s);
}
//思路二:简单粗暴的方法
for(int i=1; i<=level; i++){
for(int j=0; jSystem.out.print(" ");
}
for(int k=1; k<=i; k++){
System.out.print("* ");
}
System.out.println();
}
}