蓝桥杯 十字型徽标

**蓝桥杯 十字型徽标
原创竹坛净月 最后发布于2020-02-20 22:52:57 阅读数 6 收藏
展开
先确定中间的十字型,然后依次按照顺时针或逆时针循环遍历周围的$符。
如图所示 拿一层嵌套举例
public class 十字型徽标 {
public static void main(String[] arge)
{
Scanner cin = new Scanner(System.in);
int num = cin.nextInt();
int leng = num*4+5;
char[][] cross = new char[leng][leng];
init(cross);
f(cross,num);
sop(cross);
}

public static void init(char[][] arr) //确定十字型
{
//System.out.println(arr.length);
for(int i = 0;i<arr.length;i++)
Arrays.fill(arr[i],’.’);
int mid = arr.length/2;
arr[mid][mid] = ‘ ′ ; a r r [ m i d + 1 ] [ m i d ] = ′ '; arr[mid+1][mid] = ' ;arr[mid+1][mid]=’;
arr[mid+2][mid] = ‘ ′ ; a r r [ m i d − 1 ] [ m i d ] = ′ '; arr[mid-1][mid] = ' ;arr[mid1][mid]=’;
arr[mid-2][mid] = ‘ ′ ; a r r [ m i d ] [ m i d + 1 ] = ′ '; arr[mid][mid+1] = ' ;arr[mid][mid+1]=’;
arr[mid][mid+2] = ‘ ′ ; a r r [ m i d ] [ m i d − 1 ] = ′ '; arr[mid][mid-1] = ' ;arr[mid][mid1]=’;
arr[mid][mid-2] = ‘$’;

    }
    public static void sop(char[][] arr)  
    {  
        for(int i = 0;i<arr.length;i++)  
        {  
            for(int j = 0;j<arr.length;j++)  
                System.out.print(arr[i][j]);  //这边不能直接换行,
                                        //因为换的是具体到每行每列的元素
            sop1();   //调用换行方法
        }  
    }  
    public static void f(char[][] arr,int tr)  
    {  
        int x = arr.length/2 - 2;  
        int y = arr.length/2 - 2;  
        arr[x][y] = '$';  
        int count = 0;  
        while(count<tr)  
        {  
            for(int i = 0;i<2;i++)  
            {  
                x--;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<count*4+4;i++)  
            {  
                y++;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<2;i++)  
            {  
                x++;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<2;i++)  
            {  
                y++;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<count*4+4;i++)  
            {  
                x++;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<2;i++)  
            {  
                y--;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<2;i++)  
            {  
                x++;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<count*4+4;i++)  
            {  
                y--;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<2;i++)  
            {  
                x--;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<2;i++)  
            {  
                y--;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<count*4+4;i++)  
            {  
                x--;  
                arr[x][y] = '$';  
            }  
            for(int i = 0;i<2;i++)  
            {  
                y++;  
                arr[x][y] = '$';  
            }  
            x -= 2;  
            y -= 2;  
            count++;  
        }  
        }  
    
    public static void sop1()  
    {  
       System.out.println();  
    }  

}
————————————————
版权声明:本文为CSDN博主「竹坛净月」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36325332/article/details/104419838**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值