参考代码:
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(); } }
0.0分
0 人评分