1005: DNA

题目

Description

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

Input

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

Output

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

Sample Input

2
3 1
5 4


代码块


import java.util.Scanner;

public class Main{
    private static boolean first;//设置成员变量
    private static int a;
    private static int b;

    public static void main(String[] args) {
        Scanner cn = new Scanner(System.in);
        while(cn.hasNext()){
            int n = cn.nextInt();
            while(n--!=0){
                a = cn.nextInt();
                b = cn.nextInt();
                first = true;//初始化first值
                while(b--!=0){  //判断b是否为零,如果不是则将打印,并将first初始化为false
                    prin();
                    first = false;
                }
                System.out.println("");
            }
        }
        cn.close();
    }

    private static void prin() { //打印完整的DNA格式
        int i;
        if(first){  //对first进行判断,打印除第一行的第一个X,和最后一个X,以及中间的空格
            System.out.print("X");
            printSpace(a- 2);
            System.out.println("X");
        }
        for(i=1;i<a/2;i++){ //对不是第一行和中间一行的其余行进行打印
            printSpace(i);
            System.out.print("X");
            printSpace(-2*i+a-2);
            System.out.println("X");
        }printSpace(i);//对中间的一行打印i个空格(i来自于上面循环的a/2)
        System.out.println("X");//打印最中间一行X
        for(int j =0;j<a/2;j++,i--){    //同一个for循环打印X
            printSpace(i-1);
            System.out.print("X");
            printSpace(j*2+1);
            System.out.println("X");
        }
    }

    private static void printSpace(int i) {  //用来判断打印空格的个数
        while(i!=0&&(i--)!=0){
            System.out.print(" ");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值