蛇形填数
时间:2019-02-20
本文章向大家介绍蛇形填数,主要包括蛇形填数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述
输入数字n,输出相应的蛇形矩阵
输入样例
5
输出样例
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
问题分析
可以将输出结果通过二维数组来保存,横纵坐标分别对应该数在输出结果中的位置。这样我们只需要确定每个坐标的结果即可解决该问题。通过观察我们可以将蛇形矩阵分成逐渐变小的正方形圈,其中每一圈都有相同的规律,即从左顶点依次向右、向下、向左、向上连续递增(除只有一个数的正方形圈之外)。这样我们就可以通过两层for循环来计算结果,其中外层循环控制第几个正方形圈,内存循环分别计算圈内各个边的数
源码
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
//输入数字n
int n = in.nextInt();
if(n == 0)
{
return ;
}
//输出结果矩阵
int result[][] = new int[n][n];
int k = 1;
//外层控制第几个正方形圈
for(int i=0;i<(n+1)/2;i++)
{
//正方形圈的上边
for(int j=i;j<n-i;j++)
{
result[i][j] = k++;
}
//正方形圈的右边
for(int j=i+1;j<n-i;j++)
{
result[j][n-i-1] = k++;
}
//正方形圈的下边
for(int j=n-i-2;j>=i;j--)
{
result[n-i-1][j] = k++;
}
//正方形圈的左边
for(int j=n-i-2;j>i;j--)
{
result[j][i] = k++;
}
}
//打印输出结果
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
System.out.print(result[i][j]+"\t");
}
System.out.println("\n");
}
}
测试结果
- 重构实践:体验interface的威力(二)
- Visual Studio 2013 Web开发
- 初识Opserver,StackExchange的监控解决方案
- OstrichNet 简易统计信息收集工具
- 百度地图开发1
- 开源消息队列:NetMQ
- 自然语言处理如何检查拼写错误?(Tensorflow实例教程、源代码)
- 仿qq登录界面
- 搭建Linux+Jexus+MariaDB+ASP.NET[LJMA]环境
- WindowsMobile/Win Form-界面自适应
- 搜索附近人和商铺功能
- 通过Mono 在 Heroku 上运行 .NET 应用
- 百度地图聚合
- LVS DR模式 RealServer 为 Windows 2008 R2配置
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法