思路
方法一:将菱形的打印分解为打印每一行,再分解为打印两个的行和一个的行,在分解为打印空格和打印即可。
方法二:利用的对称性,如果只有一个*号则记两次,则每行星号之和是一个固定的值。
方法一代码
public class Test02 {
public static void main(String[] args) {
for(int i = 0; i < 3; i++)
System.out.print(" ");
System.out.println("*");
for(int i = 3; i > 0; i--) {
for (int j = 1; j < i; j++)
System.out.print(" ");
System.out.print("*");
for(int k = (4-i)*2-1; k > 0; k--)
System.out.print(" ");
System.out.println("*");
}
for(int i = 1; i < 3; i++) {
for(int j = 0; j < i; j++)
System.out.print(" ");
System.out.print("*");
for(int k = (3-i)*2-1; k > 0; k--)
System.out.print(" ");
System.out.println("*");
}
for(int i = 0; i < 3; i++)
System.out.print(" ");
System.out.println("*");
}
}
方法二代码

运行结果
*
* *
* *
* *
* *
* *
*
总结
第二种方法可以作为一个案例
本文详细解析了两种实现菱形图案打印的算法思路。方法一通过分解每一行的打印任务,分别处理空格和星号的打印;方法二利用菱形的对称性简化计算,确保每行星号总数固定,提供了一种更简洁的解决方案。
1161

被折叠的 条评论
为什么被折叠?



