无限螺旋数字:打印邻居

2024-09-29 02:17:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我怎么开始?不知道如何写这篇文章,特别是因为我不明白“维度”是什么意思。非常感谢您的帮助。在

考虑自然数在一个正方形的螺旋线中,1占据螺旋线的中心。螺旋线的中心11 x 11子集如下表所示。在

111 112 113 114 115 116 117 118 119 120 121
110 73  74  75  76  77  78  79  80  81  82
109 72  43  44  45  46  47  48  49  50  83
108 71  42  21  22  23  24  25  26  51  84
107 70  41  20  7   8   9   10  27  52  85
106 69  40  19  6   1   2   11  28  53  86
105 68  39  18  5   4   3   12  29  54  87
104 67  38  17  16  15  14  13  30  55  88
103 66  37  36  35  34  33  32  31  56  89
102 65  64  63  62  61  60  59  58  57  90
101 100 99  98  97  96  95  94  93  92  91

这个螺旋有几个有趣的特点。东南对角线上有几个质数(3、13、31、57和91)。西南对角线上质数(5,17,37)的集中度较弱。在

为了构造螺旋,我们从1开始在中心,2在右边,3在它下面,4在左边,依此类推。这个任务的一部分问题是找出填充任意大小螺旋线的规则。一旦你有了这个规则,你就可以完成剩下的任务了。在

您将提示用户输入以下信息:

输入维度:57 输入螺旋形数字:42

第一行表示方形缓和曲线的尺寸。这个数字应该是奇数。如果不是,则选择维度作为下一个更高的奇数。第二个数字必须在1和尺寸的平方之间。如果第二个数字不在该范围内,则打印一条错误消息Number not in Range。在

你将把第二个数的相邻数写成三行。每行有三个整数,用一个空格隔开。如果第二个数字是42,那么这应该是您的输出:

^{pr2}$

如果第二个数字是64,那么这应该是您的输出:

66 37 36
65 64 63
100 99 98

如果第二个数字在螺旋的外边缘,那么打印Number on Outer Edge。在


Tags: 用户number规则尺寸数字中心子集质数
1条回答
网友
1楼 · 发布于 2024-09-29 02:17:36

试着一步一步地按你认为你需要做的事情来分解它:

       1) scan 2d array for your number
       2) do algorithm to print spiral
            -print x numbers on row -1, print x numbers on row + 1
            -print y numbers on col -1, print y numbers on col + 1
       3) then start checking for special cases, like if number was in outer edge

相关问题 更多 >