参考代码:
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 人评分
最小公倍数 (C语言代码)浏览:1031 |
数对 (C语言代码)浏览:704 |
小O的乘积 (C++代码)浏览:755 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:629 |
素数的个数 一直是超时浏览:668 |
明明的随机数 (C语言代码)浏览:614 |
Manchester-弟弟的作业浏览:4010 |
1227题解浏览:533 |
银行业务队列浏览:1223 |
C语言训练-阶乘和数* (也是笨办法,但是思路好理解),新手写的写的不好请见谅浏览:1477 |