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

来源:互联网 发布:vmware安装mac os x 编辑:程序博客网 时间:2024/05/24 05:27

  • 输出菱形
    • 教材示例
    • 1 我的示例
    • 2输出下半边菱形
    • 3 输出一侧菱形
    • 4 输出空心菱形
    • 5 输出上部分菱形
    • 6 输出下部分菱形
  • 2输出三角形
    • 1 输出靠右的三角形
    • 2 输出靠左的三角形
  • 3输出九九乘法表

1.输出菱形

教材示例

输出行数为 n 的菱形。

   *  *** ************ *****  ***   *
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
   *  *** ************ *****  ***   *
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

1.2输出下半边菱形

*********** *********  *******   *****    ***     *
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
/** * 输出下半边的菱形 * 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

1.3 输出一侧菱形

*************************
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
/** * 输出一侧的菱形 * 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

1.4 输出空心菱形

   *  * * *   **     * *   *  * *   *
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

程序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();        }    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

程序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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

1.5 输出上部分菱形

     *    * *   *   *  *     * *       ************
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

1.6 输出下部分菱形

*********** *       *  *     *   *   *    * *     *
  • 1
  • 2
  • 3
  • 4
  • 5
  • 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();        }    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

2输出三角形

2.1 输出靠右的三角形

***************
  • 1
  • 2
  • 3
  • 4
  • 5
/** * 输出靠右的三角形 * 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();        }           }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

2.2 输出靠左的三角形

     *    **   ***  **** ***********
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
/** * 输出靠左三角形 * 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();        }           }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

/**  * 九九乘法表  * 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();         }     } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19