/*
行数 打印数 空格数
* 0 1 3
*** 1 3 2
***** 2 5 1
******* 3 7 0
***** 4 5 1
*** 5 3 2
* 6 1 3
*/
- 方法一:
public class K {
public static void main(String[] args) {
System.out.println("请输入菱形的边数");
Scanner scanner = new Scanner(System.in);
//定义边型的行数
int edge = scanner.nextInt();
//定义菱形所需的行数
int line = 2 * edge - 1;
//用来控制空格
int z = 0;
for (int i = 0; i < line; i++) {
//定义中间值,用来划分图形区域,分为上三角和下三角
int mid = line / 2;
//上三角
if (i <= mid) {
z = i;
while (z < mid) {
System.out.print(" ");
z++;
}
for (int j = 0; j < 2 * i + 1; j++) {
System.out.print("*");
}
System.out.println();
}
//下三角
if (i > mid) {
while (mid < i) {
System.out.print(" ");
mid++;
}
//重新把中间值赋给mid
mid = line / 2;
for (int j = 0; j < line - 2 * (i - mid); j++) {
System.out.print("*");
}
System.out.println();
}
}
}
}
- 方法二:
public class K {
public static void main(String[] args) {
System.out.println("请输入菱形的边数");
Scanner scanner=new Scanner(System.in);
//定义菱形的行数
int line=scanner.nextInt();
//定义打印*最多的个数
int max=0;
//上三角
for(int i=0;i<line;i++){
for(int y=1;y<line-i;y++){
System.out.print(" ");
}
for (int z = 0; z <2*i+1; z++) {
System.out.print("*");
if(i==line-1){
max=2*i+1;
}
}
System.out.println();
}
//下三角
for(int i=0;i<line-1;i++){
for(int y=0;y<=i;y++){
System.out.print(" ");
}
for (int z = 0; z <max-2*(i+1); z++) {
System.out.print("*");
}
System.out.println();
}
}
}