前日邀月碰到一个问题。输入一个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。
算法示例一:
思
路二:
第一步:规律
1、打印行数列数均为:n+1
2、打印数值,为位置到正方形的最近边距(4个边距中最小
的)。
或者距离中心点越近的越大(取距离中心的距离,然后被n+1减一下。)
第二步:抽象出算术逻辑
i,j范
围:1-n
到中心点的距离:左右|n+1-i| 上下|n+1-j|
值:n-最近的距离
算法示例二:
(清晰,易懂)
算法示例三:(
更简洁的)
算法示例四:(
边计算边输出)
算法示例五:
(其他类似算法)
调用示例:
效果:
抛砖,期望有更多的思路分享。
邀月注:本文版权由邀月
和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn
分享到:
相关推荐
杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法杨辉三角算法
实现二分查找 杨辉三角 二维一维数组便利
杨辉三角数组.zip
输出杨辉三角型 用数组来实现 使用宏的定义输出了6以内的杨辉三角,可改动宏
自己练习C#交错数组时写的 写的真垃圾啊 大家表下了 丢人啊 怎么不让删啊?
总结了各种实现杨辉三角形的算法,C语言源代码
用二维数组实现杨辉三角,完整实现而不会出现左贴边情况
for(hang=1;hang;hang++) { if(lie) break; san_jiao[lie][hang]=san_jiao[lie-1][hang-1]+san_jiao[lie-1][hang]; }
设计并实现求杨辉三角的递归算法,仅供参考
洋哥刚写出来的新鲜代码,通过java中for循环与两个数组的调用,实现杨辉三角算法,供大家分享交流
C语言编写的杨辉三角,使用二维数组加上循环嵌套。是在学完二维数组后的经典练习题目,主要供给给初学C语言的同学参考是使用
自己编写的用数组写杨辉三角
这个方法可以在执行过程中有效地节约内存和CPU的使用率!用的是数组中的锯齿数组!
杨辉三角 java数组练习
c#实现杨辉三角算法,程序完全可以运行,希望可以帮助到大家
正规的对称式杨辉三角(经典递归算法) 正规的对称式杨辉三角(经典递归算法) 正规的对称式杨辉三角(经典递归算法) 正规的对称式杨辉三角(经典递归算法) 正规的对称式杨辉三角(经典递归算法) 有助于初学者...
C++二维数组实现杨辉三角的前10行输出
用c语言实现的杨辉三角算法,是初学c语言者有很好的帮助。
Java实现的杨辉三角算法,vector实现的,仅供参考,闲着锻炼下大脑希望能给朋友们带来帮助
用c语言一维数组实现杨辉三角!