Java编写for循环打印菱形(不空心)

输出肯定使用for循环输出,自己在网上看一个看的有点糊涂,然后想了半天,写了一个自己的
没有什么技术含量而且条件判定还很麻烦
但好歹是自己想的,发出来供大家一乐

public static boolean lingxing(int x){
        if(x%2==0)
            return false;//菱形肯定是奇数行
        else {
            String[] a = new String[x];
            for (int i = 0; i < x; i++) {
                a[i] = "*";
            }
            for (int j=0;j<x;j++)
            {
                if(j<(x+1)/2){
                    for(int k=0;k<x;k++)
                    {
                        if(k<(x-1)/2-j||k>(x-1)/2+j){//这个判定条件是列数、行数、输出位数的关系,我找到的关系式是这个,大可以看一下网上其他比较好一点的思路
                            System.out.print("\u0000");
                        }
                        else
                            System.out.print(a[k]);
                    }
                }
                else{
                    for(int k=0;k<x;k++){
                        if(k<(x-1)/2-(x-1-j)||k>(x-1)/2+(x-1-j))
                        {
                            a[k]="\0";
                            System.out.print(a[k]);
                        }
                        else
                            System.out.print(a[k]);
                    }
                }
                System.out.println();
            }
            return true;
        }
    }
}

//讲真的,这个题目不算难,我竟然还写了这么长
emmmmm,感觉就是输出位数和行列数的关系要想下怎么找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值