<pre>
题目:输出7行的空心菱形
开始想了好久,要弄清楚空格是什么规律,星号(*)是什么规律,后来琢磨出个规律来了。
① 先从整体来看,也就是分成行,列;分为上部分和下部分。
②再看最先要输出的是什么,本例中最先输出的是空格,于是就先把空格打印完成。且空格是由多到少,所以for循环 中,变量最好从大往小开始循环,j--;
③最后看星号输出规律。
具体请看代码:
java代码实现:
public class LingXing_28 {
/**
* @param args
*/
public static void main(String[] args) {
print(7);
}
public static void print(int size)
{
if(size%2==0)
size++;
//行遍历 先遍历上面部分。
for(int i=0;i<size/2+1;i++)
{
//空格
for(int j=size/2+1;j>i+1;j--)
{
System.out.print(" ");
}
//打印 *
for(int j=0;j<2*i+1;j++){
if(j==0||j==2*i)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
//遍历每行
for(int i=size/2+1;i<size;i++)
{
//空格
for(int j=0;j<i-size/2;j++)
{
System.out.print(" ");
}
//打印 *
for(int j=0;j<2*size-2*i-1;j++)
{
if(j==0||j==2*(size-i-1))
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
}