解题思路: DNA的排列呈对称状,用数组分别从两端记录即可‘

注意事项:一定要先把数组全赋值为’ ‘(空格),缺少这一步有的电脑端也会编译成功并且输出结果完全正确,但是不能通过解答。

参考代码:

import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  int N = scanner.nextInt();  
  int a[] = new int[39];
  int b[] = new int[20];
  for(int i = 0; i < N ;i++){
   a[i] = scanner.nextInt();//行
   b[i] = scanner.nextInt();//组 
  }
  for(int i = 0; i < N ;i++){
   int j = 0;
   char DNA[][] = new char[a[i]][a[i]];
   for(int t = 0; t < a[i];t++){
    for(int d = 0; d < a[i];d++){
     DNA[t][d] = ' ';
    }
   }
   for(int n = 0; n < a[i];n++){
    DNA[n][n] = 'X';
    DNA[n][a[i]-1-n] = 'X';
   }
   for(int m = 0; m <b[i]; m++){
    for(;j < a[i];j++){
     for(int k = 0; k < a[i];k++){
      System.out.print(DNA[j][k]);
     }
     System.out.println();
    }
    j = 1;
   }
   System.out.println();
  }
 }
}

点赞(1)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

阳光的羊羊羊 4年前 回复TA
想问一下为什么要加那一步,特别感谢找了好久的错误,真的是必须必须全都遍历一遍空格