Java|Java 如何用二维数组创建空心菱形
目录
- 如何用二维数组创建空心菱形
- 题目:用“*”创建一个菱形空心
- 使用数组打印实心菱形
- 二维数组的输出(其中一种方法)
- 正式代码
如何用二维数组创建空心菱形 提供一个我自己的实现方法,方法实现只是一个人的是靠方式,并不是代表实力,真正的实力用自己的这种思维解决别人亟待解决的问题,真才是目前我觉得的编程的意义。鸡汤喝了,精神好了!来看看我的实例。
题目:用“*”创建一个菱形空心
为了能更好的找出横纵坐标的关系,我简单做了一个菱形图
文章图片
图1.菱形
从图中可以找出*点与坐标值的意义,所以此题是用二维坐标来做的;
分两部分输出图像, 上半部分:
从中间开花,给两边的值赋值为1,否则为0,最后给赋值为1的点输出*号;
- 定义二维数组的位 int []a=new int [13][13];
- 定义列方向上的两个点,p1,p2,即a[i][p1],a[i][p2];
文章图片
图2.菱形
为什么分两部分,因为在a.lengh/2-i,在i等于7的时候得负了,所以并不能一直使用原来的p1,p2的值,需要重新找好横纵坐标的规律。
下半部分:
D的坐标是(i,i-a.length/2),即D(i,p3),E的坐标比较难找到关系,我也是想了很久,呵呵就是一直试,最后没办法试不出来,还是画图做分析才找到规律的,所以科学的方法是要用数学的思维,找横纵坐标点的位置关系;
文章图片
图3 E点坐标分析
具体实现代码:
package com.JavaBase; public class lingxing { // 菱形 public static void main(String[] args) {int n = 15; //n只能是奇数int[][] a = new int[n][n]; for (int i = 0; i < a.length; i++) {for (int j = 0; j < a[i].length; j++) {a[i][j] = 0; int p1 = a.length / 2 - i; int p2 = a[i].length / 2 + i; //p1,p2的规律非常好找if (i <= a.length / 2) {//上半部分a[i][p1] = 1; a[i][p2] = 1; if (a[i][j] == 1) {System.out.print("*"); } else {System.out.print(" "); }} else {//下半部分int p3 = i - a.length / 2; //与p1相反int p4 = a.length - (i - a.length / 2) - 1; //p4的规律比较难找到a[i][p3] = 1; a[i][p4] = 1; if (a[i][j] == 1) {System.out.print("*"); } else {System.out.print(" "); }}}System.out.println(); } }}
给予借鉴和思考,方法有很多,不单只有这种,也许你的改进之后会更好。
使用数组打印实心菱形
文章图片
输出如图所示的图像
思路创建一个二维方形数组,写出正方形的四个角,之后用stringbuffer中的append进行替换
知识点:
输入Scanner sc = new Scanner(System.in); 想要转换成int数要int num =sc.nextInt();
二维数组的输出(其中一种方法)
for(int i=0; i
正式代码
import java.util.Scanner; public class text_2 { public static void main(String[] args){System.out.println("请输入数组维度"); Scanner sc = new Scanner(System.in); int num =sc.nextInt(); text_2.printstart(num); } public static void printstart(int n){int[][] array = new int[n][n]; for (int row = 0; row【Java|Java 如何用二维数组创建空心菱形】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 图解分析Javaweb进程与线程
- 一篇文章掌握Java|一篇文章掌握Java Thread的类及其常见方法
- JS|深拷贝浅拷贝的区别(如何实现一个深拷贝?)
- JS|说说JavaScript中的数据类型
- 开源者访谈录第|开源者访谈录第 1 期(如何在 3 个月内斩获 14000 个 GitHub Star!)
- [CSS篇]浅谈浮动工作原理以及如何清除浮动
- java人生|女程序员晒出工资条(工资高归高,但是感觉自己1年老了10岁)
- JAVA人生|都是科班出身的,学弟月薪却是我的3倍。
- java|28 岁的我裸辞了,四年 Java 老鸟,只因薪水被应届生倒挂,在闭关三个月后拿到阿里 Offer
- 如何获取 Docker 容器的 IP 地址