呓语


私信TA

用户名:uq_89397769703

访问量:638

签 名:

等  级
排  名 12413
经  验 903
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

     一共有n组:利用一位数组a[n],a[n]存下输入

      一组循环b遍:循环第1遍的的行数为a; 循环第2-(b)遍的时候行数为a-1,即去掉第一行

      每一遍的上半部分:第j行前面输出0,1,2...i个空格,输入X,中间输出a[i]-2-2*j个空格,再输入X

                    下半部分:和上半部分反着来就行


注意事项:

参考代码:

import java.util.Scanner;

public class Main{

public static void main(String []args)

{

int n;

Scanner scanner = new Scanner(System.in);

n=scanner.nextInt();

int []a =new int [n];

int []b =new int [n];

for(int i=0;i<n;i++)          //输入n组数

{a[i]=scanner.nextInt();

b[i]=scanner.nextInt();

}

for(int i=0;i<n;i++)        //重复n次输出

{  int flag=0;                    

  for(int z=0;z<b[i];z++)        

  {

  for(int j=flag;j<a[i]/2;j++)     //输出上半部分 ,从第二行开始每次输出a[j]/2-1行

  {  for(int m=0;m<j;m++) 

  System.out.print(' ');

System.out.print('X');

     for(int m=0;m<a[i]-2-2*j;m++)

     System.out.print(' ');

     System.out.print('X');

     System.out.println();

  }


  for(int m=0;m<a[i]/2;m++)     //输出中间一行

  System.out.print(' ');

  System.out.println('X');


  for(int j=a[i]/2-1;j>=0;j--)      //输出下半部分

  {

  for(int m=0;m<j;m++) 

  System.out.print(' ');

System.out.print('X');

     for(int m=0;m<a[i]-2-2*j;m++)

     System.out.print(' ');

     System.out.print('X');

     System.out.println();

  }

flag=1;                                //输出第2-b遍都少第一行

}

  System.out.println();       

}

}

}


 

0.0分

0 人评分

  评论区