<?php
/**
* 写一个函数有一个整数的参数(>=3),根据这个整数输出图形
* n = 3
* 3 4 5
* 10 11 6
* 9 8 7
* 思路
* 1,用一个二维数组存放这个矩阵
* $arr = array(
* array(0,0,0),
* array(0,0,0),
* array(0,0,0),
* );
* 2,矩阵的数据的变化模拟为上下左右的移动,移动一下加1
* 移动的算法是数组的下标的变化
* 向右移动 $y++
* 向下移动 $x++
* 向左移动 $y--
* 向上移动 $x--
* 3,移动的条件
* 比如向右移动,
* a,不能超出数组这个方向的最大坐标,
* b,下一个位置没有被占用,也就是$arr[x][y]=0。
* 其他,同理,向左和上是需要考虑最小值大于等于0
*/
function jz($num)
{
if($num < 3)
{
die('must greater than 3');
}
//拼出二维数组
for ($i=0; $i<$num; $i++)
{
for ($j=0; $j<$num; $j++)
{
$arr[$i][$j] = 0;
}
}
//初始化变量
$direction = 'r';//r 右 l 左 t 上 b下
$maxNum = $num * $num + $num -1;//计算出最后一个数
$x = $y = 0;//放的格子的坐标
//循环每个数字,放到数组相应的位置
for ($i=$num; $i<=$maxNum; $i++)
{
if($arr[$x][$y] &
[one_demo_3]漩涡递增矩阵
最新推荐文章于 2023-06-20 17:23:21 发布
本文详细介绍了如何实现一种特殊的矩阵——漩涡递增矩阵,即数字从中心向外以螺旋形状递增排列。通过算法解析,展示了从1开始填充矩阵的完整过程,适合对算法和数据结构感兴趣的读者。
摘要由CSDN通过智能技术生成