java-菱形实现

来源:互联网 发布:工作照软件 编辑:程序博客网 时间:2024/05/20 22:02

一.直角菱形

    public static void main(String[] args)     {        Scanner input = new Scanner(System.in);        System.out.println("请输入要打印的行数:");        int num = input.nextInt();        t1(num);    }    //正直角    /*        *        **        ***        ****        *****    */    public static void t1(int num) {        for (int i = 1; i <= num; i++) {            for (int j = 1; j <= i; j++) {                System.out.print("*");            }            System.out.println();        }    }方法二.        for(int i = 1;i<=5;i++){            for(int j = 1;j<=5;j++){                //System.out.print("*");                //判断某一些位置打*                if(j>=1&&j<=i){                    System.out.print("*");                }            }            System.out.println();        }矩阵的方法

二.倒直角
1.左到直角

import java.util.Scanner;public class lingxing{    public static void main(String[] args)     {        Scanner input = new Scanner(System.in);        System.out.println("请输入要打印的行数:");        int num = input.nextInt();        t2(num);    }    /*倒三角         *****         ****         ***         **         *        */    public static void t2(int num) {        for (int i = 1; i <= num; i++) {            for (int j = 1; j <= num - i + 1; j++) {                System.out.print("*");            }            System.out.println();        }    }}

2.右倒直角

public class Demo3{    public static void main(String [] args){        /*for(int i = 1;i<=5;i++){//行数            //空格            for(int j = 1;j<=i-1;j++){                System.out.print(" ");            }            //*            for(int j = 1;j<=6-i;j++){                System.out.print("*");            }            System.out.println();        }*/        int row = 10;        for(int i = 1;i<=row;i++){            for(int j = 1;j<=row;j++){                //System.out.print("*");                if(j>=i){                    System.out.print("*");                }else{                    System.out.print(" ");                }            }            System.out.println();        }    }}

三.等腰直角(正的和倒的)

import java.util.Scanner;public class lingxing{    public static void main(String[] args)     {        Scanner input = new Scanner(System.in);        System.out.println("请输入要打印的行数:");        int num = input.nextInt();        t3(num);        System.out.println();        t4(num);        System.out.println();        t5(num);    }    private static void t3(int num) {        for (int i = 1; i <= num; i++) {            for (int j = 1; j <= num - i; j++) {                System.out.print(" ");            }            for (int j = 1; j <= 2 * i - 1; j++) {                System.out.print("*");            }            System.out.println();        }    }    private static void t5(int num) {        for (int i = num; i > 0; i--) {            for (int j = 1; j <= num - i; j++) {                System.out.print(" ");            }            for (int j = 1; j <= 2 * i - 1; j++) {                System.out.print("*");            }            System.out.println();        }    }    private static void t4(int num) {        for (int i = 1; i <= num; i++) {            for (int j = 1; j <= i - 1; j++) {                System.out.print(" ");            }            for (int j = 1; j <= 2 * (num - i) + 1; j++) {                System.out.print("*");            }            System.out.println();        }    }}

这里写图片描述

四.实心菱形
方法一.

import java.util.Scanner;public class Demo4{    public static void main(String [] args){        System.out.println("请输入一个奇数");        Scanner sc = new Scanner(System.in);        int row = sc.nextInt();//行数        if(row%2==0){            System.out.println("请输入奇数!");            //return;//返回,结束方法            //continue;结束本次循环,进行下一次   goto            //break;结束switch for        }        int center = row/2+1;//最中间的位置        int start = center;//起始位置        int end = center;//结束位置        boolean flag = true ; //上部分        for(int i = 1;i<=row;i++){            for(int j = 1;j<=row;j++){                //System.out.print("*");                if(j>=start&&j<=end){//某些位置                    System.out.print("*");                }else{                    System.out.print(" ");                }            }            System.out.println();            //进入下部分            if(end==row){                flag = false;            }            //打印完成一行之后,开始和结束有变化            if(flag){//上部分                start--;                end++;            }else{//下部分                start++;                end--;            }        }    }}

方法二:

public class star{    public static void main(String[] args)    {        star1(3);//打印菱形方法1    }        private static void star1(int num) {        // 上半部分        for (int i = 1; i <= num; i++) {            for (int j = 1; j <= num - i; j++) {                System.out.print(" ");            }            for (int j = 1; j <= 2 * i - 1; j++) {                System.out.print("*");            }            System.out.println();        }        // 下半部分        for (int i = 1; i <= num - 1; i++) {            for (int j = 1; j <= i; j++) {                System.out.print(" ");            }            for (int j = 1; j <= 2 * (num - 1 - i) + 1; j++) {                System.out.print("*");            }            System.out.println();        }    }    }

方法三:

public class star1 {    public static void main(String[] args) {        llinxing();    }    public static void llinxing()    {        int n=3;        for(int i=0;i<n;i++){            for(int j=0;j<2*n;j++){            if(j<n-i)              System.out.print(" ");            if(j>=n-i && j<=n+i)              System.out.print("*");          }          System.out.println();        }        for(int i=1;i<n;i++){            System.out.print(" ");            for(int j=0;j<2*n-i;j++){                if(j<i)              System.out.print(" ");            if(j>=i && j<2*n-i-1)              System.out.print("*");            }            System.out.println();        }    }    }

四.空心菱形

import java.util.Scanner;public class lingxing{    public static void main(String[] args)     {        Scanner input = new Scanner(System.in);        System.out.println("请输入要打印的行数:");        int num = input.nextInt();        t7(num);        System.out.println();        t8(num);        System.out.println();        t9(num);    }    private static void t9(int num) {        for (int k = 1; k <= num; k++) {            for (int i = 1; i <= (num - k); i++) {                System.out.print(" ");            }            System.out.print("*");            for (int i = 1; i <= ((k - 2) * 2 + 1); i++) {                System.out.print(" ");            }            if (k != 1) {                System.out.print("*");            }            System.out.println();        }        for (int k = num-1; k >= 1; k--) {            for (int i = 1; i <= (num - k); i++) {                System.out.print(" ");            }            System.out.print("*");            for (int i = 1; i <= ((k - 2) * 2 + 1); i++) {                System.out.print(" ");            }            if (k != 1) {                System.out.print("*");            }            System.out.println();        }    }    private static void t8(int num) {        // 上半部分        for (int i = 1; i <= num; i++) {            // 打印上半部分空格            for (int j = 1; j <= num - 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();        }        // 下半部分        for (int i = 1; i <= num - 1; i++) {            for (int j = 1; j <= i; j++) {                System.out.print(" ");            }            for (int j = 1; j <= 2 * (num - i - 1) + 1; j++) {                if (j == 1 || j == 2 * (num - i - 1) + 1) {                    System.out.print("*");                } else {                    System.out.print(" ");                }            }            System.out.println();        }    }    private static void t7(int num) {        // 打印上半部分        for (int i = 1; i <= num; i++) {            // 打印空格            for (int j = 1; j <= (num - i); j++) {                System.out.print(" ");            }            // 打印*的个数            if (i == 1) {                System.out.print("*");            } else {                System.out.print("*");                // 打印菱形里的空格                for (int j = 1; j <= (2 * i - 3); j++) {                    System.out.print(" ");                }                System.out.print("*");            }            System.out.println();        }        // 打印下半部分        for (int i = num - 1; i > 0; i--) {            // 打印空格            for (int j = 1; j <= (num - i); j++) {                System.out.print(" ");            }            // 打印*的个数            if (i == 1) {                System.out.print("*");            } else {                System.out.print("*");                // 打印菱形里的空格                for (int j = 1; j <= (2 * i - 3); j++) {                    System.out.print(" ");                }                System.out.print("*");            }            System.out.println();        }    }}

这里写图片描述