import java.util.Scanner;
public class Java {
public static void main(String[] args) {
Scanner myScanner=new Scanner(System.in);
int n =myScanner.nextInt(); //n用来表示总层数
//空心菱形可以分为两部分,上半部分为空心正三角形,下半部分为空心倒三角形
for (int i=1 ;i<=(n+1)/2 ;i++ ) {//控制正三角形层数
for(int k=1 ;k<=((n+1)/2)-i ;k++) {//控制空格数
System.out.print(" ");
}
for(int j=1 ;j<=2*i-1 ;j++ ) {//控制*数
if(j==1 || j==2*i-1 ) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
for (int i=(n-(n+1)/2),l=1 ;i>=1 ;i--,l++) {//倒三角形控制层数
for(int k=1;k<=l;k++) {//控制空格数
System.out.print(" ");
}
for(int j=1 ;j<=2*i-1 ;j++ ) {//控制*数
if(j==1 || j==2*i-1 ) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
/* *个数 空格个数 层数 *个数等于 空格个数等于
* 1 4 1 2*层数-1 正三角形层数-1
*** 3 3 2
***** 5 2 3
******* 7 1 4
********* 9 0 5
******* 7 1 4(倒序表示层数) 正序层数(即1,2,3,4)将层数再倒过来
***** 5 2 3
*** 3 3 2
* 1 4 1
*/
上述代码附带实心菱形的思路,先会输出实心的再去输出空心,一步一步来。
如果有不明白的欢迎在评论区留言。