2016-11-15 18 views
-1

Wie fange ich an? Keine Ahnung wie man das schreibt, besonders weil ich nicht verstehe, was mit "Dimension" gemeint ist. Würde mich sehr über Hilfe freuen.Unendlich Spirale der Zahlen: Drucken Nachbarn

Betrachten Sie die natürlichen Zahlen in einer quadratischen Spirale, wobei 1 das Zentrum der Spirale einnimmt. Die zentrale 11 × 11-Untergruppe dieser Spirale ist in der folgenden Tabelle gezeigt.

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 

Diese Spirale hat einige interessante Eigenschaften. Die Südostdiagonale hat mehrere Primzahlen (3, 13, 31, 57 und 91). Die Südwestdiagonale weist eine geringere Konzentration von Primzahlen (5, 17, 37) auf.

Um die Spirale zu konstruieren, beginnen wir mit 1 in der Mitte, mit 2 nach rechts und 3 darunter, 4 nach links, und so weiter. Ein Teil des Problems für diese Aufgabe besteht darin, die Regel herauszufinden, um die Spirale für eine beliebige Größe zu füllen. Sobald Sie diese Regel haben, können Sie den Rest der Aufgabe abschließen.

Sie werden dem Benutzer die folgenden Informationen aufgefordert:

Dimension ein: 57 Nummer eingeben in Spiral: 42

Die erste Zeile zeigt die Dimension des quadratischen Spirale. Diese Nummer sollte eine ungerade Zahl sein. Wenn dies nicht der Fall ist, wählen Sie die Dimension als nächst höhere ungerade Zahl. Die zweite Zahl muss im Bereich 1 und dem Quadrat der Dimension liegen. Wenn die zweite Nummer nicht in diesem Bereich liegt, drucken Sie eine Fehlermeldung Number not in Range.

Sie schreiben die benachbarten Zahlen der zweiten Nummer in drei Zeilen. Jede Zeile hat drei ganze Zahlen, die durch ein einzelnes Leerzeichen voneinander getrennt sind. Wenn die zweite Zahl 42 war, dann sollte dies Ihre Ausgabe sein:

72 43 44 
71 42 21 
70 41 20 

Wenn die zweite Zahl 64 war, dann sollte dies Ihre Ausgabe sein:

66 37 36 
65 64 63 
100 99 98 

Was passiert, wenn die zweite Zahl war auf der äußere Kante der Spirale, dann drucken Number on Outer Edge.

+0

Können Sie fragen, wer den Auftrag geschrieben, was sie bedeuten? – khelwood

+0

Dimension scheint die Größe des Quadrats zu bedeuten, wenn also die gegebene Dimension 57 ist, würden Sie ein 57 x 57 Quadrat verwenden, weshalb die zweite Zahl zwischen 1 und Dimension^2 liegen muss. Es muss merkwürdig sein, denn es gibt eine einzige Zahl in der Mitte. – TallChuck

Antwort

0

Versuchen Sie es Schritt für Schritt zu brechen durch das, was Sie denken, was Sie tun müssen:

 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