一个面试题,自己写的,跟网上大部分现有的不太一样,直接计算出(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