李伟嘉


私信TA

用户名:uq_84409864200

访问量:889

签 名:

等  级
排  名 2775
经  验 2075
参赛次数 38
文章发表 6
年  龄 19
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

简单的数学题
浏览:120
DNA-一种题解
浏览:80

参考代码:

public void dna() {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    for (int i = 0; i < n; i++) {
        int a = sc.nextInt();
        int b = sc.nextInt();
        char[][] arr = new char[a][a];
        //两条对角线的公式分别是j+k==a-1,j==k
        for (int j = 0; j < a; j++) {
            for (int k = 0; k < a; k++) {
                    //如果是对角线就直接输出
                if (j+k==a-1||j==k) {
                    arr[j][k] = 'X';
                 //如果是如果是下面那副图的彩色区域
                }else if(j>k || j+k<a-1){
                    arr[j][k] = ' ';
                 //s顶换行
                }else {
                    arr[j][k] = 's';
                }
            }
        }
        for (int j = 0; j < b; j++) { //输出DNA
            if (j == 0) { //第一遍时,需要输出DNA的第一行
                for (int m = 0; m < a; m++) {
                    for (int k = 0; k < a; k++) {
                        if (arr[m][k] != 's') {  //把二维数组内为s的都排除不输出,就得到我们想要的答案了
                            System.out.print(arr[m][k]);
                        }
                    }
                    System.out.println();
                }
            } else {    //到了第二遍重复,不能输入DNA第一行,故从第二行开始,其他不变
                for (int m = 1; m < a; m++) {
                    for (int k = 0; k < a; k++){
                        if(arr[m][k]!='s') {
                            System.out.print(arr[m][k]);
                        }
                    }
                    System.out.println();
                }
            }

        }
        System.out.println();
    }
}

屏幕截图 2021-10-11 163124.png

 

0.0分

0 人评分

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

编程语言转换

万能编程问答

代码解释器

  评论区