Java用 * 打印图形-菱形、空心菱形、三角形等


如梦,如梦,残月落花烟重。—李存勖 如梦令·曾宴桃源深洞


1.输出菱形

教材示例

输出行数为 n 的菱形。

   *
  ***
 *****
*******
 *****
  ***
   *
public class Diamond2 {
    public static void main(String[] args) {
        print(7); // 输出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++) {

                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++) {

                System.out.print("*"); // 输出菱形下半部边缘

            }
            System.out.println(); // 换行
        }
    }
}

1.1 我的示例

这里写图片描述

上面的菱形一共7行。上部分4行,下部分3行。

菱形的行数总是奇数的,空格总是按值“1”递增或递减,每行 * 号数量总是行数n的 2*n-1
行数等于 * 号最多的行的 * 号数。

菱形分为上部分和下部分,设行数为 n。

上部分:n/2+1行
下部分:n/2行

/**
 * 输出特定行数菱形
 * Title: Diamond2
 * Description: 
 * Company: 
 * @author Peng
 * @date 下午1:17:29
 */
public class Mydemo {
    public static void main(String[] args) {
        print(7); // 输出7行的菱形
    }

    public static void print(int size) {
        if (size % 2 == 0) {
            size++; // 计算菱形大小
        }
        int i;
        int j;
        for (i = 0; i < size / 2 + 1; i++) {
            for (j = 0; j < size / 2 - i; j++) {
                System.out.print(" ");
            }
            for (j = 0; j < 2 * (i + 1) - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        for (i = 0; i < size / 2; i++) {
            for (j = 0; j < i + 1; j++) {
                System.out.print(" ");
            }
            for (j = 0; j < 2 * (size / 2 - i) - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

   *
  ***
 *****
*******
 *****
  ***
   *

1.2输出下半边菱形

***********
 *********
  *******
   *****
    ***
     *
/**
 * 输出下半边的菱形
 * Title: Diamond3
 * Description: 
 * Company: 
 * @author Peng
 * @date 下午1:15:23
 */
public class Diamond3 {
    public static void main(String[] args) {
        print(11); // 输出*号为7的下半边菱形
    }

    public static void print(int size) {
        if (size % 2 == 0) {
            size++; // 计算菱形大小
        }
        int i;
        int j;
        for(i=0;i<size/2+1;i++){
            for(j=0;j<i;j++){
                System.out.print(" ");// 输出空格
            }
            for(j=0;j<2*(size/2-i)+1;j++){
                System.out.print("*");// 输出 *
            }
            System.out.println();
        }
    }
}

1.3 输出一侧菱形

*
***
*****
*******
*****
***
*
/**
 * 输出一侧的菱形
 * Title: Diamond4
 * Description: 
 * Company: 
 * @author Peng
 * @date 下午1:22:15
 */
public class Diamond4 {
    public static void main(String[] args) {
        print(7);// 输出*号数量为7的一侧菱形
    }

    public static void print(int size) {
        if (size % 2 == 0) {
            size++; // 计算菱形大小
        }
        int i;
        int j;
        for(i=0;i<size/2+1;i++){            
            for(j=0;j<2*(i+1)-1;j++){
                System.out.print("*");              
            }
            System.out.println();
        }
        for(i=0;i<size/2;i++){      
            for(j=0;j<2*(size/2-i)-1;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

1.4 输出空心菱形

   *
  * *
 *   *
*     *
 *   *
  * *
   *

程序1

/**
 * Title: Diamond7 
 * Description: 输出空心菱形 
 * @author Peng
 * @date 下午1:52:51
 */
public class Diamond7 {
    public static void main(String[] args) {
        print(11); // 
    }

    public static void print(int size) {
        if (size % 2 == 0) {
            size++; // 计算菱形大小
        }
        boolean isfirstorend = false;
        int i;
        int j;
        //图形上部分
        for (i = 0; i < size / 2 + 1; i++) {
             isfirstorend = false;
            for (j = 0; j < size / 2 - i; j++) {
                System.out.print(" ");
            }
            System.out.print("*");
            for (j = 0; j < 2 * i - 1; j++) {
                System.out.print(" ");
                isfirstorend = true;
            }
            if (isfirstorend) {// 判断是否是第一行
                System.out.print("*");
            }
            System.out.println();
        }
        //图形下部分
        for (i = 0; i < size / 2; i++) {
            isfirstorend = false;
            for (j = 0; j < i + 1; j++) {
                System.out.print(" ");
            }
            System.out.print("*");
            for (j = 0; j < 2 * (size / 2 - i - 1) - 1; j++) {
                System.out.print(" ");
                isfirstorend = true;
            }
            if(isfirstorend){// 判断是否是最后一行
            System.out.print("*");
            }
            System.out.println();
        }
    }
}

程序2

/**
 * Title: Diamond8 
 * Description: 输出空心菱形2 
 * @author Peng
 * @date 下午1:52:51
 */
public class Diamond8 {
    public static void main(String[] args) {
        print(7); // 
    }

    public static void print(int size) {
        if (size % 2 == 0) {
            size++; // 计算菱形大小
        }
        int i;
        int j;
        for (i = 0; i < size / 2 + 1; i++) {

            for (j = 0; j < size / 2 - i; j++) {
                System.out.print(" ");
            }
            System.out.print("*");
            for (j = 0; j < 2 * i - 1; j++) {
                System.out.print(" ");              
            }
            if (i==0) {}// 如果在第一行则不输出第二个*号
            else{
                System.out.print("*");
            }
            System.out.println();
        }
        for (i = 0; i < size / 2; i++) {

            for (j = 0; j < i + 1; j++) {
                System.out.print(" ");
            }
            System.out.print("*");
            for (j = 0; j < 2 * (size / 2 - i - 1) - 1; j++) {
                System.out.print(" ");          
            }
            if(i==(size/2-1)){}// 如果在行尾则不输出第二个*号
            else{
                System.out.print("*");
            }

            System.out.println();
        }
    }
}

1.5 输出上部分菱形

     *
    * *
   *   *
  *     *
 *       *
***********
package com.jsp;

/**
 * Title: Diamond9 
 * Description: 输出上部空心菱形 
 * @author Peng
 * @date 下午2:44:51
 */
public class Diamond9 {
    public static void main(String[] args) {
        print(11); 
    }

    public static void print(int size) {
        if (size % 2 == 0) {
            size++; // 计算菱形大小
        }
        int i;
        int j;
        //前面带空格的行
        for (i = 0; i < size / 2 ; i++) {

            for (j = 0; j < size / 2 - i; j++) {
                System.out.print(" ");
            }
            System.out.print("*");
            for (j = 0; j < 2 * i - 1; j++) {
                System.out.print(" ");              
            }
            if (i==0) {}
            else{
                System.out.print("*");
            }
            System.out.println();
        }
        //输出最后一行
        for(i=0;i<size;i++){
            System.out.print("*");
        }
    }
}

1.6 输出下部分菱形

***********
 *       *
  *     *
   *   *
    * *
     *
/**
 * Title: Diamond10 Description: 输出下部空心菱形
 * 
 * @author Peng
 * @date 下午2:55:51
 */
public class Diamond10 {
    public static void main(String[] args) {
        print(11);
    }

    public static void print(int size) {
        if (size % 2 == 0) {
            size++; // 计算菱形大小
        }
        int i;
        int j;
        // 输出第一行
        for (i = 0; i < size; i++) {
            System.out.print("*");
        }
        System.out.println();
        // 后面带空格的行
        for (i = 0; i < size / 2; i++) {

            for (j = 0; j < i + 1; j++) {
                System.out.print(" ");
            }
            System.out.print("*");
            for (j = 0; j < 2 * (size / 2 - 1 - i) - 1; j++) {
                System.out.print(" ");
            }
            if (i == size / 2 - 1) {
            } else {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

2输出三角形

2.1 输出靠右的三角形

*
**
***
****
*****
/**
 * 输出靠右的三角形
 * Title: Diamond5
 * Description: 
 * Company: 
 * @author Peng
 * @date 下午1:22:15
 */
public class Diamond5 {
    public static void main(String[] args) {
        print(5);
    }

    public static void print(int size) {

        int i;
        int j;
        for(i=0;i<size;i++){            
            for(j=0;j<i+1;j++){
                System.out.print("*");              
            }
            System.out.println();
        }       
    }
}

2.2 输出靠左的三角形

     *
    **
   ***
  ****
 *****
******
/**
 * 输出靠左三角形
 * Title: Diamond6
 * Description: 
 * Company: 
 * @author Peng
 * @date 下午1:22:15
 */
public class Diamond6 {
    public static void main(String[] args) {
        print(6);
    }

    public static void print(int size) {

        int i;
        int j;
        for(i=0;i<size;i++){
            for(j=0;j<size-i-1;j++){
                System.out.print(" ");
            }
            for(j=0;j<i+1;j++){
                System.out.print("*");              
            }
            System.out.println();
        }       
    }
}

3输出九九乘法表

1×1=1   
1×2=2   2×2=4   
1×3=3   2×3=6   3×3=9   
1×4=4   2×4=8   3×4=12  4×4=16  
1×5=5   2×5=10  3×5=15  4×5=20  5×5=25  
1×6=6   2×6=12  3×6=18  4×6=24  5×6=30  6×6=36  
1×7=7   2×7=14  3×7=21  4×7=28  5×7=35  6×7=42  7×7=49  
1×8=8   2×8=16  3×8=24  4×8=32  5×8=40  6×8=48  7×8=56  8×8=64  
1×9=9   2×9=18  3×9=27  4×9=36  5×9=45  6×9=54  7×9=63  8×9=72  9×9=81
/**
 * 九九乘法表
 * Title: MultiplicationTable
 * Description: 
 * Company: 
 * @author Peng
 * @date 上午9:24:35
 */
public class MultiplicationTable {
    public static void main(String[] args) {
        for(int i=1;i<=9;i++) {
            for(int j=1;j<=i;j++) {
                System.out.print(j+"×"+i+"="+i*j+"\t");// \t 跳到下一个TAB位置
            }
            System.out.println();
        }
    }
}
  • 25
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值