C语言网 问题 1115: DNA

题目描述

小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词--DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮,“要是能画出来就好了” 小强喊道。现在就请你帮助他吧

输入

输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。

输出

输出DNA的形状,每组输出间有一空行。

样例输入
2
3 1
5 4
样例输出
X X
 X
X X

X   X
 X X
  X
 X X
X   X
 X X
  X
 X X
X   X
 X X
  X
 X X
X   X
 X X
  X
 X X
X   X
提示
来源
吉首大学软件学院
思路:当b>1时先输出前a行,再输出后a-1行 ->这是一个循环

代码:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int n = s.nextInt();
		char x[][] = new char[40][40];
		for (int i = 0; i < n; i++) {
			int a = s.nextInt();
			int b = s.nextInt();
			for (int j = 0; j < a; j++) {
				for (int k = 0; k < a; k++) {
					if (j + k == a - 1 || j == k) {
						x[j][k] = 'X';
					} else
						x[j][k] = ' ';
				}
			}
			int y = 0;
			for (int m = 0; m < b; m++) {
				if (b > 1) {
					y = 1;
					if (m == 0) {
						for (int j = 0; j < a; j++)
							System.out.print(x[0][j]);
						System.out.println();
					}

				}

				for (int j = y; j < a; j++) {
					for (int k = 0; k < a; k++) {
						System.out.print(x[j][k]);
					}
					System.out.println();
				}

			}
			System.out.println();
		}
	}
}

你可能感兴趣的:(Java)