zoukankan      html  css  js  c++  java
  • java 打印空心菱形的两种实现

    第一种实现方式:

    //打印给定行数的空心菱形
    public static void draw(int size){
            if (size % 2 == 0) //如果是偶数行变为奇数
            {
                size++;
            }
            //中心点:2*size -1 ,实现的关键在于找准中心点,下面以打印7行的空心菱形为例进行分析
            for (int i = 0; i < size/2+1; i++)//打印菱形上面的4行
            {
                for (int j = 0; j < 2*size - 1; j++)//每一行的总长度是2*size -1 
                {
                    if (j == (size -1-2*i) || j ==(size -1 + 2*i))//中心点左右两边对称的位置打印 * 号
                    {
                        System.out.print("*");
                    }
                    else
                    {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
            for (int i = size/2-1; i >= 0; i--)//打印菱形下面的3行
            {            
                for (int j = 0; j < 2*size - 1; j++)
                {
                    if (j == (size -1-2*i) || j ==(size -1 + 2*i))//中心点左右两边对称的位置打印 * 号
                    {
                        System.out.print("*");
                    }
                    else
                    {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
        }

    这是一个正方形里面有一个菱形:

    第二种实现方式:

        public static void draw2(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 -1-2*i; j++)
                {
                    if (j==0||j==2*(size -i -1))
                    {
                        System.out.print("*");
                    }
                    else
                    {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
        }

    输出结果:

     

  • 相关阅读:
    wx.showToast 延时跳转~~~
    wx.request 获取不到post传递的值
    G,sql中select 如果太长,可以在后面放G,竖行显示~~~~
    用for语句从数组中剔除数据,注意,count,要放到for语句之外才行
    读代码还是读文档,来自知乎
    聊聊我对写好程序的认识
    open() 函数以 r+ 模式打开文件
    open()
    Python 流程控制:while
    Python 序列
  • 原文地址:https://www.cnblogs.com/hoonick/p/9981672.html
Copyright © 2011-2022 走看看