解题思路:
1.这题和其他打印图形的题相差不多,没有什么算法,找到规律就好
以3为例子:
00 02
11
20 22
除了i==j的情况(\反斜杠形状)需要打印X之外,/正斜杠方向需要分成两个部分(i<j和i>j),我试过用一个标识数a,不行(有更好解决方式的小伙伴可以下方留言)。标识数其实就是图形标量比如3(a=3-1,b=3)。
2.只要打印出单次循环,就离成功不远了,单次循环:
int a=x[0]-1;//当二维数组i>j时的标识数,b相反 int b=x[0]; for(int i=0;i<x[0];i++) { for(int j=0;j<x[0];j++) { if(i==j) { System.out.print("X"); a--; b--; } else if(i<j) { if(j==b) { System.out.print("X"); }else System.out.print(" "); } else if(i>j) { if(j==a) { System.out.print("X"); }else System.out.print(" "); } else System.out.print(" "); } System.out.println(); }
注意事项:输出多个循环需要一些细节改动,需把循环标量改成n-1并补上最后一行。
参考代码:
public static void main(String[] args) { //个数 Scanner in=new Scanner(System.in); int num=in.nextInt(); int count=num; //先整合数据,存入n1 int[] n1=new int[num*2]; num=num*2; int c=0; while(num>0) { if (in.hasNext()) { n1[c]=in.nextInt(); c++; }else break; num--; } //使用二维数组存放数据,方便后面解题 c=0; int[][] n=new int[count][2]; for(int i=0;i<count;i++) { for(int j=0;j<2;j++) { n[i][j]=n1[c]; c++; } } //打印输出,利用foreach循环遍历数据数组 for (int[] is : n) { printDna(is); System.out.println(); } } //解题函数 public static void printDna(int[] x) { //当循环数为1的情况单独处理 if(x[1]==1) { for(int m=0;m<x[1];m++) { int a=x[0]-1;//当二维数组i>j时的标识数,b相反 int b=x[0]; for(int i=0;i<x[0];i++) { for(int j=0;j<x[0];j++) { if(i==j) { System.out.print("X"); a--; b--; } else if(i<j) { if(j==b) { System.out.print("X"); }else System.out.print(" "); } else if(i>j) { if(j==a) { System.out.print("X"); }else System.out.print(" "); } else System.out.print(" "); } System.out.println(); } } } else { for(int m=0;m<x[1];m++) { int a=x[0]-1;//当二维数组i>j时的标识数,b相反 int b=x[0]; for(int i=0;i<x[0]-1;i++) { for(int j=0;j<x[0];j++) { if(i==j) { System.out.print("X"); a--; b--; } else if(i<j) { if(j==b) { System.out.print("X"); }else System.out.print(" "); } else if(i>j) { if(j==a) { System.out.print("X"); }else System.out.print(" "); } else System.out.print(" "); } System.out.println(); } } //补上最后一行 for(int i=0;i<x[0];i++) { if(i==0||i==x[0]-1)System.out.print("X"); else System.out.print(" "); } System.out.println(); } }
都看到这了,留个赞吧 ^-^
0.0分
4 人评分
妹子杀手的故事 (C语言代码)浏览:1297 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:573 |
WU-输入输出格式练习 (C++代码)浏览:1133 |
【亲和数】 (C语言代码)浏览:628 |
图形输出 (C语言代码)浏览:1422 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:612 |
数组输出 (C语言代码)浏览:749 |
分解质因数 (C++代码)浏览:1560 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:725 |
母牛的故事 (C语言代码)浏览:495 |