学习日常----Java实现打印动态菱形

题目要求:给定一个奇数n,输出一个n行的菱形
输出样例:

5
   *
  ***
 *****
  ***
   *
解题思路:
将菱形矩阵分为上下两部分输出,中间行随上半部分一起输出
上半部分矩阵:
 
//菱形阵上半部分(包括中间行)
            for(int i = 1;i <=(l+1)/2; i ++)
            {
                for(int j = (l+1)/2; j > i; j--)
                {
                    System.out.print(" ");
                }
                for(int k = 1;k <=i*2-1; k++)
                {
                    System.out.print("*");
                }
                System.out.println();
            }

下半部分矩阵:

//菱形阵下半部分
            for(int i = 1; i <=(l-1)/2; i++)
            {
                for(int j = 1;j <= i; j++) {
                    System.out.print(" ");
                }
                for(int k = 1; k <=l-i*2 ; k++) {
                    System.out.print("*");
                }
                System.out.println();
            }

完整源代码:

import java.util.Scanner;

public class lingxing {
        public static void main(String[] args) {
            Scanner scan= new Scanner(System.in);
            int l= scan.nextInt();
//菱形阵上半部分(包括中间行)
            for(int i = 1;i <=(l+1)/2; i ++)
            {
                for(int j = (l+1)/2; j > i; j--)
                {
                    System.out.print(" ");
                }
                for(int k = 1;k <=i*2-1; k++)
                {
                    System.out.print("*");
                }
                System.out.println();
            }
//菱形阵下半部分
            for(int i = 1; i <=(l-1)/2; i++)
            {
                for(int j = 1;j <= i; j++) {
                    System.out.print(" ");
                }
                for(int k = 1; k <=l-i*2 ; k++) {
                    System.out.print("*");
                }
                System.out.println();
            }
        }
    }

 

posted @ 2020-10-19 11:11  AA、  阅读(428)  评论(0编辑  收藏  举报