打印菱形可谓是最经典的问题了:
这类问题的主要思想应该是确定行数与每行的空格星号之间的数量关系。
一.注意的点如下:
1.首先可以确定若想打印菱形,那么必须知道行数,而由菱形的特性可以知道行数肯定是奇数。
2.把菱形分成上下两个部分来看。
3.确定行数与空格的数量关系,行数与星号的数量关系。
二.过程如下:
1.先确定上菱形的数量关系:
*总行数:*m
*行数的一半:*t(向下取值)
*行数的一半:*n(向上取值)
行数:总行数的一半加一(包括中间行,并把其设为i)
每行的空格与当前行的关系:空格数设为 j,则j=n-i
星号与当前行数的关系:设星号数为k,则k=2i-1
2.下半个菱形的数量关系:
基本上同上半菱形,但是注意行数。
三.自我感觉:只要画一幅图,然后用表格列出来各项,找到关系就很好写了。
代码如下:
public static void main(String[] args) {
// TODO 自动生成的方法存根
int m=15;
//确定打印菱形的行数,可以自行设置
int n=m/2+1;
int t=m/2;
for(int i=1;i<=n;i++)//打印菱形的上半部分
{
for(int j=(n-i);j>0;j--)
System.out.print(" ");
//打印空格数
for(int k=2*i-1;k>0;k--)
System.out.print("*");
//打印*号
System.out.println();
//一行打印结束,换行
}
for(int i=t;i>0;i--)//打印菱形的下半部分
{
for (int b=(n-i);b>0;b--)
System.out.print(" ");
//打印空格数
for (int a=(2*i-1);a>0;a--)
System.out.print("*");
//打印*号
System.out.println();
//一行打印结束,换行
}
}
以上代码的结果如下: