真的是了


私信TA

用户名:wofule66666

访问量:472

签 名:

等  级
排  名 14953
经  验 858
参赛次数 1
文章发表 4
年  龄 0
在职情况 学生
学  校 mmm
专  业

  自我简介:

TA的其他文章

解题思路:定义二维数组找规律赋值

注意事项:

参考代码:

import java.util.Scanner;

public class Main {
   public static void main(String []args){
       Scanner scanner=new Scanner(System.in);
       int n=scanner.nextInt();
       scanner.close();
       int m=5+n*4;               //定义数组
       char [][]a=new char[m+1][m+1];
       for(int i=1;i<=m;i++){
           for(int j=1;j<=m;j++){
               a[i][j]='.';
           }
       }
       a[(m+1)/2][(m+1)/2]='$';       //最初的十字赋值
       a[(m+1)/2-1][(m+1)/2]='$';
       a[(m+1)/2-2][(m+1)/2]='$';
       a[(m+1)/2+1][(m+1)/2]='$';
       a[(m+1)/2+2][(m+1)/2]='$';
       a[(m+1)/2][(m+1)/2+1]='$';
       a[(m+1)/2][(m+1)/2+2]='$';
       a[(m+1)/2][(m+1)/2-1]='$';
       a[(m+1)/2][(m+1)/2-2]='$';
       while (n>0){                        //n圈包围
           int l=(m+1)/2-2-2*n;      //上下左右 依次赋值
           int r=(m+1)/2+2+2*n;
           int u=(m+1)/2-2-2*n;
           int d=(m+1)/2+2+2*n;
           for(int i=(m+1)/2-2*n;i<=(m+1)/2+2*n;i++) {
               a[i][l] = '$';
               a[i][r] = '$';
               a[u][i] = '$';
               a[d][i] = '$';
           }
           a[u+2][l+1]=a[u+1][l+2]=a[u+1][r-2]=a[u+2][r-1]=                       //两条边连接角赋值
                   a[d-2][l+1]=a[d-1][l+2]=a[d-1][r-2]=a[d-2][r-1]=
                           a[u+2][l+2]=a[u+2][r-2]=a[d-2][l+2]=a[d-2][r-2]='$';
           n--;
       }
       for(int i=1;i<=m;i++){
           for(int j=1;j<=m;j++){
               System.out.print(a[i][j]);
           }
           System.out.println();
       }
   }
}

 

0.0分

0 人评分

  评论区

  • «
  • »