打印环形数字矩阵,顺时针,边计算边打印,时间复杂度O(n^2)

这是一个面试题,文章提出了一种独特的方法,直接计算(i,j)的值来顺时针打印环形数字矩阵。通过指定矩阵的第一个元素nBegin、矩阵的长宽nLengthSide、环的编号nLoop以及第nLoop环的长宽nLengthSideLoop,结合等差数列知识确定起始值nBase。矩阵的四个边分别用不同的递增或递减规律来确定每个位置的数值,最后按顺序打印。" 82504319,5661650,Java Web使用Freemarker导出Word和Zip包,"['Java开发', 'Freemarker模板', '文件导出', 'Word处理', '压缩包']
摘要由CSDN通过智能技术生成

一个面试题,自己写的,跟网上大部分现有的不太一样,直接计算出(i,j)的值打印。

nBegin是指定的矩阵的第一个元素。
nLengthSide是指定的矩阵的长宽。
nLoop是第几环。
nLengthSideLoop是第nLoop环的长宽。
nBase是第nLoop环的第一个元素,这个值的推导过程用到了高中的等差数列,结果是前n项和,注意数学里的2*(1/2)=1,代码中=0。
将环的边分为四组:
上边组:从左到右,递增
右边组:从上到下,递增
左边组:从上到下,递减
下边组:从左到右,递减
针对每组找到通项公式直接printf出来。

printf处4行代码可以进行合并,为直观未进行处理。


BOOL
	PrintLoopFormMatrix(
	__in int nBegin,
	__in int nLengthSide
	)
{
	BOOL    bRet       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值