2016-11-15 33 views
-1

我該如何開始?不知道該怎麼寫,特別是因爲我不明白「維度」是什麼意思。將不勝感激一些幫助。無限數字螺旋:打印鄰居

考慮一個方形螺旋佈局的自然數,其中1個佔據螺旋的中心。下表顯示了該螺旋的中心11×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,依此類推。這項任務的一部分問題是找出規則來填補arbirary大小的螺旋。一旦你有了這個規則,你就可以完成剩下的任務。

您將提示輸入以下信息的用戶:

輸入尺寸:57 在螺旋輸入數:42

第一行表示的方螺旋形的尺寸。這個數字應該是一個奇數。如果不是,則選擇維度作爲下一個更高的奇數。第二個數字必須在範圍1和維度的平方中。如果第二個號碼不在該範圍內,則輸出錯誤消息Number not in Range

您將在三行中寫入第二個數字的鄰接數字。每行將有三個由一個空格分隔的整數。如果第二個數字爲42,那麼這應該是你的輸出:

72 43 44 
71 42 21 
70 41 20 

如果第二個數字是64,那麼這應該是你的輸出:

66 37 36 
65 64 63 
100 99 98 

如果有什麼是第二個數字是在螺旋的外緣,然後打印Number on Outer Edge

+0

你可以問問誰寫他們的意思分配? – khelwood

+0

尺寸似乎意味着正方形的大小,所以如果給定的尺寸是57,那麼您將使用57 x 57的正方形,這就是爲什麼第二個數字必須介於1和尺寸^ 2之間的原因。這很奇怪,因爲中心只有一個號碼。 – TallChuck

回答

0

嘗試通過你認爲你需要做的一步將它分解步驟:

 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