三人丿木丶一兀之


私信TA

用户名:792408237

访问量:10895

签 名:

等  级
排  名 233
经  验 6019
参赛次数 14
文章发表 36
年  龄 0
在职情况 学生
学  校 木星土里挖中心技术学院
专  业

  自我简介:

解题思路:

步骤如下:

  1. 先将不带空格的图形显示出来

  2. 分层次显示,先显示 

    XXXXX

      XXX

    再显示

        X

      XXX

    XXXXX

  3. 再根据行的变化来显示前面的空,以及剔除中间的空


注意事项:(题目上面第一个演示中少去掉了一行)
参考代码:

import java.util.Scanner;

public class DNA {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner scanner = new Scanner(System.in);
  // 存储有几个数
  int frequency = scanner.nextInt();
  // 存储不同的DNA
  int[][] DNA = new int[frequency][2];
  for (int i = 0; i < frequency; i++) {
   for (int j = 0; j < 2; j++) {
    DNA[i][j] = scanner.nextInt();
   }
  }
  // 表示有连个dna要显示
  for (int i = 0; i < frequency; i++) {

   // 循环几遍
   for (int j = 0; j < DNA[i][1]; j++) {

    // 上部分
    if (j>0) {
     for (int j2 = 0; j2 < DNA[i][0]/2; j2++) {
      // 开始的空格
      for (int k = 0; k < j2; k++) {
       System.out.print(" ");
      }
      for (int k = 0; k <DNA[i][0]-2*j2; k++) {
       if (j2==0) {
        break;
       }
       if (k==0||k+1==DNA[i][0]-2*j2) {
        System.out.print("X");
       }else {
        System.out.print(" ");
       }
       
      }
      if (j2==0) {
       continue;
      }
       
      // 换行,准备输出第二个
      System.out.println();
      }
    }else {
     for (int j2 = 0; j2 < DNA[i][0]/2; j2++) {
      // 开始的空格
      for (int k = 0; k < j2; k++) {
       System.out.print(" ");
      }
      for (int k = 0; k <DNA[i][0]-2*j2; k++) {
       if (k==0||k+1==DNA[i][0]-2*j2) {
        System.out.print("X");
       }else {
        System.out.print(" ");
       }
       
      }
       
      // 换行,准备输出第二个
      System.out.println();
      }
    }
    
    //下班部分
    for (int j2 = 0; j2 <DNA[i][0]-DNA[i][0]/2; j2++) {
     for (int k = 0; k < DNA[i][0]/2-j2; k++) {
      System.out.print(" ");
     }
     for (int k = 0; k < 2*j2+1; k++) {
      if (k==0||k+1==2*j2+1) {
       System.out.print("X");
      }else {
       System.out.print(" ");
      }
      
     }
     System.out.println();
    }
    
    }
    
   // 换行,准备输出第二个
   System.out.println();
   }
   
  
  
  }
 
 

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区