java打印三角图案

//打印三角图案
public class TuAn {
    public static void main(String[] args) {

        //可以把要打印的点位置理解成这样,举例是一个6*6的正方形:
        //00 01 02 03 04 05
        //10 11 12 13 14 15
        //20 21 22 23 24 25
        //30 31 32 33 34 35
        //40 41 42 43 44 45
        //50 51 52 53 54 55
        //然后你要打印什么样的三角形,就要找那些点的位置规律,ij值的变化
        //特殊的三角形需要拆分和组装,只要最后形状是对的即可        

        //左下直角
        zuoXiaZhiJiao();
        System.out.println();
        System.out.println("=================");
        System.out.println();
        //左上直角
        zuoShangZhiJiao();
        System.out.println();
        System.out.println("=================");
        System.out.println();

        //右下直角
        youXiaZhiJiao();
        System.out.println();
        System.out.println("=================");
        System.out.println();
        //右上直角
        youShangZhiJiao();

        //以上打印其实只用到正序和倒序正方形输出的一部分 
        jiChu();

        System.out.println();
        System.out.println("=================");
        System.out.println();
        //"等腰"三角
        dengYaoSanJiao();
    }

    private static void dengYaoSanJiao() {
        //疑惑的同学可以自己修改print内容,看看每一部分具体的样子
        //<<和>>是左移和右移,等价于乘和除,原理就是对数的二进制进行移位操作
        //<<1左移一位 = 乘以2,<<2左移两位 = 乘以4
        //>>1右移一位 = 除以2  思考一下1>>1结果是?
        for(int i=1;i<=8;i++){
            //第一部分
            for(int j=8; i<=j; j--){
                System.out.print("   ");
            }
            //第二部分
            int num =1;
            for(int j=1; j<=i; j++){
                System.out.print(" "+num+" ");
                num = num<<1;
            }
            //第三部分
            num = num>>1;
            for(int j=1; j<i; j++){
                num = num>>1;
                System.out.print(" "+num+" ");
            }
            System.out.println();
        }
    }

    private static void jiChu() {
        System.out.println();
        System.out.println("=================");
        System.out.println();
        for(int i=1;i<7;i++){
            for(int j=1;j<7;j++){
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println();
        System.out.println("=================");
        System.out.println();
        for(int i=1;i<7;i++){
            for(int j=6;j>0;j--){
                System.out.print(j);
            }
            System.out.println();
        }
    }

    private static void youShangZhiJiao() {
        for(int i=6;i>0;i--){
            for(int j=6;j>0;j--){
                if(j<=i){
                    System.out.print(j);
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

    private static void youXiaZhiJiao() {
        for(int i=1;i<7;i++){
            for(int j=6;j>0;j--){
                if(j<=i){
                    System.out.print(j);
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

    private static void zuoShangZhiJiao() {
        for(int i=6;i>0;i--){
            for(int j=1;j<7&&j<=i;j++){
                System.out.print(j);
            }
            System.out.println();
        }
    }

    private static void zuoXiaZhiJiao(){
        for(int i=1;i<7;i++){
            for(int j=1;j<7&&j<=i;j++){
                System.out.print(j);
            }
            System.out.println();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值