【发布时间】:2011-06-24 19:36:49
【问题描述】:
我遇到了这个在金字塔中打印数字的非常有趣的程序。
如果 n = 1 则打印以下内容,
1 2
4 3
如果 n = 2 则打印以下内容,
1 2 3
8 9 4
7 6 5
如果 n = 3 则打印以下内容,
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
我可以使用相当多的循环和变量来打印所有这些,但它看起来非常具体。您可能已经注意到,所有这些金字塔填充都从一个方向开始,直到找到填充的路径。您可能已经注意到 1,2,3,4,5,6,7,8,9,10,11,12 在外边缘归档,直到找到 1 所以在 12 之后进入第二行并打印 13,14等等。它以螺旋模式打印,就像蛇游戏一样,蛇会一直走下去,直到撞到自己为止。
我想知道这个金字塔生成背后是否有任何算法,或者它只是棘手的耗时金字塔生成程序。
提前致谢。这是一个非常有趣的具有挑战性的计划,所以我恳请您不需要投票管道:)
【问题讨论】:
-
我会说
spiral而不是pyramid。 -
我在逻辑上同意它的螺旋,但在物理上同意它的金字塔
-
这种模式称为Spiral Matrix(请参阅链接了解 41 种语言的解决方案)。