`

三角螺旋矩阵

 
阅读更多

打印如下矩阵,如果 n=7 则输出:


18 2 
17 19 3 
16 27 20 4 
15 26 28 21 5 
14 25 24 23 22 6 
13 12 11 10 9  8  7
 

 

注意观察可知,数字增加的方向及走过的步数是有规律的:

 

1 斜下 7
2 向左 6
3 向上 5
4 斜下 4
5 向左 3
6 向上 2
7 斜下 1

 

所以可以设定的一个变量 direction 记录方向的变化,循环变化。

同时根据 direction 的不同,来决定每次的递增位置。

 

代码如下:

public class Sanjiao {
	public static void main(String[] args) {
		int n = 7;
		int num[][] = new int[n][n];
		int index = 0;//数值
		int row = -1;// 行
		int cel = -1;// 列
		for (int i = n; i > 0; i--) {
			int direction = i % 3;//方向
			for (int k = i; k > 0; k--) {
				// 0向左 1斜着 2向上
				switch (direction ) {
				case 1: {
					num[++cel][++row] = ++index;
					break;
				}
				case 2: {
					num[--cel][row] = ++index;
					break;
				}
				case 0: {
					num[cel][--row] = ++index;
					break;
				}
				}
			}
		}
		//结果输入
		for (int i = 0; i < num.length; i++) {
			for (int k = 0; k < num[0].length; k++) {
				if (num[i][k] != 0) {
					if (num[i][k] > 9)
						System.out.print(num[i][k] + " ");
					else
						System.out.print(num[i][k] + "  ");

				}
			}
			System.out.println();
		}
	}

}

 

分享到:
评论

相关推荐

    c语言螺旋矩阵大作业报告.docx

    用C语言完成螺旋矩阵,输入n,得到n行n列的四种螺旋矩阵 1. 给定N的值,从矩阵的左上角输出顺时针...5.给定N的值,从矩阵的左上角顺时针输出上三角螺旋矩阵 例如N=4时,输出: 1 2 3 4 9 10 5 8 6 7 6.退出系统

    螺旋矩阵源码_VB.NET

    提供了两种螺旋矩阵的输出方式,对于研究螺旋矩阵的网友可以作参考之用 刚学VB.NET做的

    螺旋矩阵 (类名SpiralMatrix)

    输入两个不大于10的整数m和n,输出m×n的逆时针形式的螺旋矩阵,输出数字占2位,数字间用1个空格分割。(类名SpiralMatrix)

    c# 上三角螺旋加下三角蛇形矩阵

    本代码实现了在Windows环境下用C#语言编写N*N 通用方阵,要求是左下三角是蛇形矩阵,右上三角顺时螺旋 N=4时 1 11 12 13 7 2 16 14 8 6 3 15 10 9 5 4 N=5时 1 16 17 18 19 9 2 24 25 20 10 8 3 23 21 14 11 7 4 ...

    c#螺旋矩阵加蛇形矩阵

    c# 上三角螺旋加下三角蛇形矩阵 N=4时 1 11 12 13 7 2 16 14 8 6 3 15 10 9 5 4 N=5时 1 16 17 18 19 9 2 24 25 20 10 8 3 23 21 14 11 7 4 22 15 13 12 6 5

    C语言算法 螺旋矩阵

    打印输出螺旋矩阵,要求螺旋矩阵的阶数由用户输入

    l.rar_螺旋矩阵

    螺旋矩阵 编写一个程序Zifu,该程序运行后,用户根据提示输入范围的上限和下限,随即产生一个该范围的字符 杨辉三角

    java书写螺旋矩阵

    将螺旋分别做成了不同块划分来写的,分别使用4个三角形的形状的数字 组成一个正方形,没个 循环控制一个三角形的数字

    Java实现螺旋矩阵的示例

    主要介绍了Java实现螺旋矩阵的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    python 实现 矩阵 课程设计 代码

    python 实现 二叉搜索矩阵 在矩阵中计数岛屿 计数路径 克莱默斯规则 2X2 矩阵逆 矩阵中的最大平方面积 矩阵类 矩阵运算 岛屿最大面积 使用矩阵幂的第 N 个斐波那契 ... 螺旋印花 测试 测试矩阵操作

    双臂圆锥对数螺旋天线的研究

    本文利用曲线段三角基展开,伽略金法检验的矩量法对一种非频变天线——双臂圆锥对数螺旋天线进行了分析.通过曲线段拟合天线结构以及利用阻抗矩阵的中心对称性减少计算量.使得计数精度、速度大为提高.本文的方法和...

    易语言经典算法

    取所有质数 求最小公倍数 求最大公约数 汉诺塔 9X9乘法表 猫捉老鼠(筛选法) ...螺旋矩阵问题(多循环法) 买水果问题 求平方根 求任意三角形面积 全排列问题(递推法) 怎样组合值最大 取两数之间均匀分布的随机数

    javalruleetcode-JavaPractice:Java实践

    螺旋矩阵 下一个排列 螺旋矩阵 II 合并间隔 插入间隔 最大子阵列 加一 设置矩阵零 帕斯卡三角形 帕斯卡三角形 II 多数元素 旋转阵列 汇总范围 数组除自身的乘积 缺少号码 生命游戏 递增三重子序列 多数元素 II 电话...

    C语言大作业(三个操作题)

    本次C语言实验主要包括三个实验,分别是:一、摄氏温度C与华氏温度F转换并打印对照表;二、输出螺旋矩阵n*n(2≤n≤9);三、用二维数组实现三角函数在以°为单位的区间[0,ang)图像。

    易语言5.0自带源代码[经典数学算法集.rar]

    79.螺旋矩阵问题(多循环法) 80.买水果问题 81.求平方根 82.求任意三角形面积 83.全排列问题(递推法) 84.怎样组合值最大 85.取两数之间均匀分布的随机数 算法: 递归 递推法 分块查找 筛选法 枚举法 冒泡法 ...

    leetcode1185-myLeetCodeInJava:LeetCode算法问题由java&sql问题与MySQL

    螺旋矩阵 66 - 加一 88 - 合并排序数组 105 - 从前序和中序遍历构造二叉树 106 - 从中​​序和后序遍历构造二叉树 118 - 帕斯卡三角形 119 - 帕斯卡三角II 121 - 买卖股票的最佳时机 122 - 买卖股票的最佳时机 II ...

    LC_copy

    (54)螺旋矩阵 (57)插入间隔 (73)设置矩阵零点 (75)排序颜色 (88)合并排序数组 (118)帕斯卡的三角 (119)帕斯卡的三角II (169)多数元素 (229)多数派元素II (238)阵列除自身的乘积 (243)最短...

    LeetCode解题总结

    LeetCode解题总结 1. 数组 1.1 从有序数组中删除重复元素...15.8.2 生成螺旋矩阵 15.9 Z字形输出字符串 15.10 不使用乘、除、取模实现两个整数相除 15.11 文本对齐 15.12 共线的最大点数 16 其他问题 16.1 随机数生成器

    leetcode:golang leetcode

    螺旋矩阵 斑点 61 旋转链表 中等 链表 62 不同路径 中等 动态规划 64 最小路径和 中等 动态规划 66 加一 简单 斑点 70 爬楼梯 简单 动态规划 75 颜色分类 中等 斑点 78 子集 斑点 80 从排序数组中删除重复项II 斑点...

Global site tag (gtag.js) - Google Analytics