您的位置:首页 > 编程语言 > Java开发

Java打印M图形(二维数组)——(九)

2017-08-02 22:30 429 查看
对于平面图形输出集合图形与数字组合的,用二维数组。先在Excel表格中分析一下,找到简单的规律。二维数组的行数为行高,列数为最后一个数大小。

对于减小再增大再减小再增大的,可以用一个boolean标志其是增加还是减小状态,减到最小时将其[b]标志设为相反的并改变这时的初值大小。[/b]

效果:



Excel中分析





Java代码:

package Java_Test;

public class PrintM {

/*

3     7
2  4  6  8
1    5      9
平面图形(二维数组)

*/
public static void main(String[] args) {

int atr[][]=new int[3][9];
//        产生9个数,放入对应位置
boolean flag=false;   //false代表横坐标在减小,true代表在增大
//        初始位置
int x=2;
int y=0;
for(int i=1;i<=9;i++){

//            放入第一个数
atr[x][y]=i;
//            y始终在增大
y++;

if(!flag){  //如果x在减小让其自减
x--;
}

if(flag){
x++;
}

if(x<0){  //x减到0,再减为-1
flag=true;
x=x+2;
}

if(x>2){  //x加2,再加为3
flag=false;
x=x-2;
}
}

for(int i=0;i<3;i++){
for(int j =0;j<9;j++){
if(atr[i][j]==0){
System.out.print(" ");
}else{
System.out.print(atr[i][j]);
}
}
System.out.println();
}

}
}


测试:



-------------------------------------------------------输入n个数输出M的改造--------------------------------

package Java_Test;

import org.junit.Test;

public class PrintM_duogeshu {

/*
*
* 3 7 2 4 6 8 1 5 9 平面图形(二维数组)
*
*/
public static void test1(int num) {

int height = (num / 4) + 1; // 4条边

int atr[][] = new int[height][num];
// 产生9个数,放入对应位置
boolean flag = false; // false代表横坐标在减小,true代表在增大
// 初始位置
int x = height-1;
int y = 0;
for (int i = 1; i <= num; i++) {

// 放入第一个数
atr[x][y] = i;
// y始终在增大
y++;

if (!flag) { // 如果x在减小让其自减
x--;
}

if (flag) {
x++;
}

if (x < 0) { // x减到0,再减为-1
flag = true;
x = x + 2;
}

if (x > height-1) { // x加2,再加为3
flag = false;
x = x - 2;
}
}

for (int i = 0; i < atr.length; i++) {
for (int j = 0; j < atr[i].length; j++) {
if (atr[i][j] == 0) {
System.out.print(" ");
} else {
System.out.print(atr[i][j]);
}
}
System.out.println();
}

}

@Test
public void test(){
PrintM_duogeshu.test1(13);
}
}


测试:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: