打印一个空心菱形--0702

代码:

package dome1;

import java.util.Scanner;

/**
 * @author M.Wang
 * 打印一个空心的菱形
 *      *
 *     * *
 *    *   *
 *   *     *
 *    *   *
 *     * *
 *        *
 */
public class TuXing5 {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
     Scanner input = new Scanner(System.in);
     System.out.println("请输入您需要绘制的图形行数:");
     int sum = input.nextInt();
//     打印空心菱形分两部分打印,先打印菱形的上半部分,在打印下半部分
     /*上半部分空心等腰三角形规律分析:
      先分析等腰三角形右边的空格规律:以上边菱形为例,上半部分有4行,空格规律为4-当前第几行
      再分析星号:为实心等腰三角形为分析基本,第一行一个星号,,其他行数皆为两个星号,这两个星号的位置都在等腰三角形行的首尾位置
     中间都是空格,分析星号的位置规律(这边分析的位置为等腰三角形,包括中间空格,不包括右边空格):
         行数              星号位置          星号位置
         第一行          第一个
         第二行          第一个              第三个
         第三行          第一个              第五个
         第四行          第一个              第七个
         以此推出,星号的位置与行数的关系:1或(2*行数-1),中间的输出空格
      */
     for(int i = 1;i <= sum;i++) {
         for(int j = 1;j <= sum-i;j++) {
             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行,
     还是先分析右边的空格三角形:
         行    个数
         1    1
         2    2
         3    3
     推出:右边空格三角形规律为:第几行就有几个空格
     分析空心倒立三角形,还是以实心倒立三角形为基本分析:最后一行一个星号,
     其他行数皆为两个星号,这两个星号的位置都在等腰三角形行的首尾位置,中间都是空格,
     分析星号的位置规律(这边分析的位置为等腰三角形,包括中间空格,不包括右边空格):
         行    位置        位置        输入行数
         1    第1个        第5个        4
         2    第1个        第3个        4
         3    第1个                 4
         推出:星号的位置与输入行数与当前行数的关系:1或(输入行数-当前行数)*2-1,中间的输出空格
     */
     
     for(int i = 1;i <= sum-1;i++) {
         for(int j = 1;j <= i;j++) {
             System.out.print(" ");
         }
         for(int j = 1;j <= 2*(sum-i)-1;j++) {
             if(j == 1 || j == 2*(sum-i)-1) {
                 System.out.print("*");
             }else {
                 System.out.print(" ");
             }  
         }
         System.out.println();
     }
    }
}

运行结果:

 

posted on 2019-07-02 10:58  迪恩9  阅读(800)  评论(0编辑  收藏  举报