我们先利用Java打印一个这样的等腰三角形
可以发现在每层*打印之前,都要先打印空格,找规律可以发现每一层先需要打印
”总层数—当前层数“
数量的空格
之后每层需要打印的*号是:当前层数 * 2 - 1
利用双重循环来实现:
public static void main(String[] args) {
for(int i = 1; i <= 5; i++){
//找规律发现在每层*打印之前,都要打印”总层数—当前层数“数量的空格
for(int k = 1; k <= 5 - i; k++){
System.out.print(" ");
}
//之后再开始打印*
for(int j = 1; j <= i * 2 - 1; j++){
System.out.print("*");
}
//打完一层换行
System.out.println();
}
}
如果要打印一个这样的空心等腰三角形呢?
只需要在打印*号的时候,加个判断条件:每层只要打印第一个*跟最后一个*,并且最后一层全部都要打*
public static void main(String[] args) {
for(int i = 1; i <= 5; i++){
//找规律发现在每层*打印之前,都要打印”总层数—当前层数“数量的空格
for(int k = 1; k <= 5 - i; k++){
System.out.print(" ");
}
//之后再开始打印*
for(int j = 1; j <= i * 2 - 1; j++){
//现在*号不是全部打印了!每层打印*都有条件了
if(j == 1 || j == i * 2 -1 || i == 5) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}