博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java打印M图形(二维数组)——(九)
阅读量:6791 次
发布时间:2019-06-26

本文共 3061 字,大约阅读时间需要 10 分钟。

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

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

效果:

 

Excel中分析

 

Java代码:

1 package Java_Test; 2  3 public class PrintM { 4  5     /* 6       7         3     7 8        2  4  6  8 9       1    5      910       平面图形(二维数组)11       12      */13     public static void main(String[] args) {14         15         int atr[][]=new int[3][9];16 //        产生9个数,放入对应位置17         boolean flag=false;   //false代表横坐标在减小,true代表在增大18 //        初始位置19         int x=2;20         int y=0;21         for(int i=1;i<=9;i++){22             23 //            放入第一个数24             atr[x][y]=i;25 //            y始终在增大26             y++;27             28             if(!flag){  //如果x在减小让其自减29                 x--;30             }31             32             if(flag){33                 x++;34             }35 36             if(x<0){  //x减到0,再减为-137                 flag=true;38                 x=x+2;39             }40             41             if(x>2){  //x加2,再加为342                 flag=false;43                 x=x-2;44             }45         }46         47         48         for(int i=0;i<3;i++){49             for(int j =0;j<9;j++){50                 if(atr[i][j]==0){51                     System.out.print(" ");52                 }else{53                     System.out.print(atr[i][j]);54                 }55             }56             System.out.println();57         }58         59         60         61     }62 }

 

测试:

 

 

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

1 package Java_Test; 2  3 import org.junit.Test; 4  5 public class PrintM_duogeshu { 6  7     /* 8      *  9      * 3 7 2 4 6 8 1 5 9 平面图形(二维数组)10      * 11      */12     public static void test1(int num) {13 14         int height = (num / 4) + 1; // 4条边15 16         int atr[][] = new int[height][num];17         // 产生9个数,放入对应位置18         boolean flag = false; // false代表横坐标在减小,true代表在增大19         // 初始位置20         int x = height-1;21         int y = 0;22         for (int i = 1; i <= num; i++) {23 24             // 放入第一个数25             atr[x][y] = i;26             // y始终在增大27             y++;28 29             if (!flag) { // 如果x在减小让其自减30                 x--;31             }32 33             if (flag) {34                 x++;35             }36 37             if (x < 0) { // x减到0,再减为-138                 flag = true;39                 x = x + 2;40             }41 42             if (x > height-1) { // x加2,再加为343                 flag = false;44                 x = x - 2;45             }46         }47 48         for (int i = 0; i < atr.length; i++) {49             for (int j = 0; j < atr[i].length; j++) {50                 if (atr[i][j] == 0) {51                     System.out.print(" ");52                 } else {53                     System.out.print(atr[i][j]);54                 }55             }56             System.out.println();57         }58 59     }60     61     @Test62     public void test(){63         PrintM_duogeshu.test1(13);64     }65 }

 

测试:

 

转载地址:http://pkogo.baihongyu.com/

你可能感兴趣的文章
老男孩教育day2学习总结
查看>>
Apache Ignite(三):Ignite和Hazelcast性能对比测试
查看>>
阿里云ECS家族再添新成员,推出密集计算型实例规格族ic5
查看>>
面试专题:Linux运维精华面试题
查看>>
js日常
查看>>
u盘坏了怎么修复,丢失文件如何找回
查看>>
怎样把Word转成PDF,Word转PDF的方法
查看>>
【2019年1月】开源社交系统ThinkSNS + 后端更新播报
查看>>
科创板:中国科技产业新引擎
查看>>
华为路由器默认路由配置
查看>>
TCP传输过程中丢包问题
查看>>
用了辣么久Sublime
查看>>
Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法
查看>>
Linux 系统 Apache安装配置与优化
查看>>
Cisco 路由器 重要存储设备Flash和NVRAM
查看>>
在bootstrap中多层modal叠加导致页面无法滚动的问题
查看>>
dns配置和各种文件中注意的点
查看>>
Django的API操作mysql中常用的语句
查看>>
windows计算程序运行时间
查看>>
linux find命令的使用方法
查看>>