java实现三角螺旋阵
方阵的主对角线之上称为“上三角”。
请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。
例如:当n=3时,输出:
1 2 3
6 4
5
当n=4时,输出:
1 2 3 4
9 10 5
8 6
7
当n=5时,输出:
1 2 3 4 5
12 13 14 6
11 15 7
10 8
9
程序运行时,从标准输入获得整数n(3~20)
程序输出:方阵的上三角部分。
要求格式:每个数据宽度为4,右对齐。
package com.liu.ex9;
import java.util.Scanner;
public class Main {
public void initArray(int[][] arrayA) {
for(int i = 0;i < arrayA.length;i++)
arrayA[i] = new int[arrayA.length - i];
}
public void dfs(int[][] arrayA, int row, int num) {
if(row >= arrayA.length / 2)
return;
//填充上方第一行
for(int i = row;i < arrayA[row].length - row;i++)
arrayA[row][i] = num++;
//填充后续每一行右边最后一个元素
for(int i = row + 1;i < arrayA[row].length - row;i++)
arrayA[i][arrayA[i].length - 1 - row] = num++;
//填充后续每一行开始左边第一个元素
for(int i = arrayA[row].length - 2 - row;i > row;i--)
arrayA[i][row] = num++;
dfs(arrayA, row + 1, num);
}
public void printResult(int[][] arrayA) {
for(int i = 0;i < arrayA.length;i++) {
for(int j = 0;j < arrayA[i].length;j++)
System.out.printf("%4d",arrayA[i][j]);
System.out.println();
}
}
public static void main(String[] args) {
Main test = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] arrayA = new int[n][];
test.initArray(arrayA);
test.dfs(arrayA, 0, 1);
test.printResult(arrayA);
}
}
java实现三角螺旋阵的更多相关文章
- 输出 n=6 的三角数字阵(JAVA基础回顾)
package itcast.feng; import java.util.Scanner; //需求:输出 n=6 的三角数字阵 //1 //2 3 //4 5 6 //7 8 9 10 //11 ...
- Java递归算法——三角数字
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...
- java实现顺时针螺旋填入
从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把 1,2,3-n*n 的数字按照顺时针螺旋的形式填入其中.例如: 输入数字 2,则程序输出: 1 2 4 3 输入数字 3,则程序输出: 1 ...
- Java递归算法——三角数字(消除递归)
import java.io.*; // for I/O //类名:Params //属性: //方法: class Params //这个类的对象被压入栈中 { public int n; //用来 ...
- 算法笔记_126:算法集训之编程大题集二(Java)
目录 1 连续数的公倍数 2 漏掉的账目明细 3 罗马数字转十进制 4 逻辑推断 5 平面4点最小距离 6 取球博弈 7 人民币金额大写 8 人员排日程 9 三角螺旋阵 10 手机尾号评分 1 ...
- HDU1134/HDU1133 递推 大数 java
Game of Connections Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- Java的二维数组的应用及杨辉三角的编写
(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...
- 使用Java打印杨辉三角
package 杨辉三角; import java.util.Scanner; public class 三角 { private static Scanner scn; public static ...
随机推荐
- Spring Cloud认知学习(一):Spring Cloud介绍与Eureka使用
目录 Spring Cloud的介绍 微服务的介绍 Spring Cloud出现的原因: 常见场景: 微服务的优劣势: Spring Cloud版本问题 版本介绍 与Spring Boot版本对应关系 ...
- JVM入门--类加载器
一.基础架构 概览 我们平时说的栈是指的Java栈,native method stack 里面装的都是native方法 细节架构图 二.类加载器 1.类的加载 方法区并不是存放方法的区域,其是存放类 ...
- SpringData表关系:多对多
一.编写实体类配置关联关系: 1.多对多使用注解@ManyToMany配置:a. 在实体中添加一个集合属性 b.在属性上添加ManyToMany注解 c.@JoinTable 注解配置关联关系(nam ...
- Linux --常见Linux目录名称
Linux文件系统结构是从Unix文件结构演进过来的,在Linux文件系统中,通用的文件系统中,通用的目录名用于表示一些常见的功能.如下所示: 目录 用途 / 虚拟目录的根目录,通常不会再这里存储文件 ...
- com.zx.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. 报错问题
数据库连接问题 需要处理的地方有3处 1.url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncodi ...
- React学习随笔
一.在非create-react-app创建的项目,使用JSX需要注意的问题 1.1 入门的时候,要引入Babel,并将<script>标签加上type='text/babel'的属性. ...
- 常用loaders
css-loader,style-loader: 在webpack中,所有文件资源都可以看成模块.css文件也可以作为模块引入到config.js配置对象的entry文件中. 1.entery文件中导 ...
- 贝叶斯优化(Bayesian Optimization)只需要看这一篇就够了,算法到python实现
贝叶斯优化 (BayesianOptimization) 1 问题提出 神经网咯是有许多超参数决定的,例如网络深度,学习率,正则等等.如何寻找最好的超参数组合,是一个老人靠经验,新人靠运气的任务. 穷 ...
- Angular 服务对象的作用范围
1.高阶话题:服务对象的作用范围 声明服务提供者的方式: 方式1:在根模块中提供服务对象-----在整个应用中服务是单例 @Injectable({ providedIn:'root' }) expo ...
- Django启动
Django启动 (一)CMD中创建启动: 1.配置好django-admin.exe环境变量,切换到项目文件夹路径 切换磁盘:>>>E: 显示文件列表:>>>di ...