前日邀月碰到一个问题。输入一个int32类型参数n,n>1。按如下的例子控制台输出n=1: 1 1 1 1
n=2: 1 1 1 1 2 1 1 1 1
n=3: 1 1 1 1 1 2 2 1 1 2 2 1 1 1 1 1
n=4: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1
n=5: 1 1 1 1 1 1 1 2 2 2 2 1 1 2 3 3 2 1 1 2 3 3 2 1 1 2 2 2 2 1 1 1 1 1 1 1
n=6: 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 3 3 3 2 1 1 2 3 4 3 2 1 1 2 3 3 3 2 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1
邀月征集几位网友的算法,整理如下:
思路一:
首先看例子,是一个2维矩阵,矩阵的范围是给定数+1,也就是给定5,那么范围就是6*6的矩阵。思路就是逐渐的+1,拿n=6,7*7的例子说明,首先矩阵里的所有单位+1,当全部加完的时候,第2轮是向内侧数一圈,也就是横纵坐标的最小值+1,而最大值-1;也就是定义的k跟c,最后当 k/2+1的时候就不再+1了,也就是6/2+1=4,5/2+1=3。


出处:邀月的博客周记
责任编辑:bluehearts
上一页 下一页 一个类似于杨辉三角的数组算法思路 [2]
◎进入论坛网络编程版块参加讨论
|