Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Golang Program to Print Spiral Pattern of Numbers
In this tutorial, we will learn how to print spiral pattern of Numbers using Go programming language.
A Spiral pattern of numbers is used to print numbers in spiral pattern on the screen. In this program we will create an array of size n, store numbers in it and use the array to create a matrix in a spiral format.
Syntax
for initialization; condition; update {
statement(s)
}
func make([]T, len, cap) []T
make() function is used to allocate memory of heap for some variables. For eg we can use make() function to allocate memory for an array. This function takes three arguments one is the data type of the array, another is the length of the array and capacity. This function returns the final array which we can store in an variable.
Example: Golang program code to print spiral pattern of numbers using for loop
Algorithm
STEP 1 ? Import the package fmt
STEP 2 ? Create a function name spiral() which contain the logic.
STEP 3 ? Initialize the variables left, right, top, bottom and assign values to them.
STEP 4 ? Use the make() function to append an array variable of integer data type and store resultant array in another variable. Decide the size of array and pass it as the argument to the array variable.
STEP 5 ? Use the for loop on all the variables to arange them in a spiral format.
STEP 6 ? Ararnge the central element in the spiral.
STEP 7 ? Start function main()
STEP 8 ? Initialize a variable named num, length and assign an array of such length.
STEP 9 ? Call the spiral() function, inside a loop to print the pattern.
STEP 10 ? EXIT the program.
Example
<div class="execute"></div><div class="code-mirror language-java" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token comment">// GOLANG PROGRAM TO PRINT SPIRAL PATTERN OF NUMBERS USING FOR LOOPS.</span>
<span class="token keyword">package</span> <span class="token namespace">main</span>
<span class="token comment">// fmt package have the required packages</span>
<span class="token keyword">import</span> <span class="token punctuation">(</span>
<span class="token string">"fmt"</span>
<span class="token punctuation">)</span>
<span class="token comment">// CREATE A SPIRAL FUNCTION WHICH RETURNS THE REQUIRED ARRAY</span>
func <span class="token function">spiral</span><span class="token punctuation">(</span>n <span class="token keyword">int</span><span class="token punctuation">)</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token keyword">int</span> <span class="token punctuation">{</span>
<span class="token comment">// INITIALIZE THE REQUIRED VARIABLES</span>
left<span class="token punctuation">,</span> top<span class="token punctuation">,</span> right<span class="token punctuation">,</span> bottom <span class="token operator">:</span><span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> n<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> n<span class="token operator">-</span><span class="token number">1</span>
<span class="token comment">// Size of the matrix</span>
array_size <span class="token operator">:</span><span class="token operator">=</span> n <span class="token operator">*</span> n
spiral_array <span class="token operator">:</span><span class="token operator">=</span> <span class="token function">make</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token keyword">int</span><span class="token punctuation">,</span> array_size<span class="token punctuation">)</span>
i <span class="token operator">:</span><span class="token operator">=</span> <span class="token number">0</span>
<span class="token comment">// USE FOR LOOP ON THE VARIABLES FOR PRINTING THE REQUIRED PATTERN</span>
<span class="token keyword">for</span> left <span class="token operator"><</span> right <span class="token punctuation">{</span>
<span class="token keyword">for</span> c <span class="token operator">:</span><span class="token operator">=</span> left<span class="token punctuation">;</span> c <span class="token operator"><=</span> right<span class="token punctuation">;</span> c<span class="token operator">++</span> <span class="token punctuation">{</span>
spiral_array<span class="token punctuation">[</span>top<span class="token operator">*</span>n<span class="token operator">+</span>c<span class="token punctuation">]</span> <span class="token operator">=</span> i
i<span class="token operator">++</span>
<span class="token punctuation">}</span>
top<span class="token operator">++</span>
<span class="token keyword">for</span> r <span class="token operator">:</span><span class="token operator">=</span> top<span class="token punctuation">;</span> r <span class="token operator"><=</span> bottom<span class="token punctuation">;</span> r<span class="token operator">++</span> <span class="token punctuation">{</span>
spiral_array<span class="token punctuation">[</span>r<span class="token operator">*</span>n<span class="token operator">+</span>right<span class="token punctuation">]</span> <span class="token operator">=</span> i
i<span class="token operator">++</span>
<span class="token punctuation">}</span>
right<span class="token operator">--</span>
<span class="token keyword">if</span> top <span class="token operator">==</span> bottom <span class="token punctuation">{</span>
<span class="token keyword">break</span>
<span class="token punctuation">}</span>
<span class="token keyword">for</span> c <span class="token operator">:</span><span class="token operator">=</span> right<span class="token punctuation">;</span> c <span class="token operator">>=</span> left<span class="token punctuation">;</span> c<span class="token operator">--</span> <span class="token punctuation">{</span>
spiral_array<span class="token punctuation">[</span>bottom<span class="token operator">*</span>n<span class="token operator">+</span>c<span class="token punctuation">]</span> <span class="token operator">=</span> i
i<span class="token operator">++</span>
<span class="token punctuation">}</span>
bottom<span class="token operator">--</span>
<span class="token keyword">for</span> r <span class="token operator">:</span><span class="token operator">=</span> bottom<span class="token punctuation">;</span> r <span class="token operator">>=</span> top<span class="token punctuation">;</span> r<span class="token operator">--</span> <span class="token punctuation">{</span>
spiral_array<span class="token punctuation">[</span>r<span class="token operator">*</span>n<span class="token operator">+</span>left<span class="token punctuation">]</span> <span class="token operator">=</span> i
i<span class="token operator">++</span>
<span class="token punctuation">}</span>
left<span class="token operator">++</span>
<span class="token punctuation">}</span>
<span class="token comment">// center (last) element</span>
spiral_array<span class="token punctuation">[</span>top<span class="token operator">*</span>n<span class="token operator">+</span>left<span class="token punctuation">]</span> <span class="token operator">=</span> i
<span class="token comment">//RETURN THE ARRAY</span>
<span class="token keyword">return</span> spiral_array
<span class="token punctuation">}</span>
<span class="token comment">// start the function main()</span>
<span class="token comment">// This function is the entry point of the executable program</span>
func <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">// THE VALUE TO BE PASSED IN THE spiral() Function</span>
num <span class="token operator">:</span><span class="token operator">=</span> <span class="token number">5</span>
len <span class="token operator">:</span><span class="token operator">=</span> <span class="token number">2</span>
<span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"IT IS A SPIRAL PATTERN OF LENGTH "</span><span class="token punctuation">,</span> num<span class="token punctuation">)</span>
<span class="token comment">//todraw the pattern use the for loop on spiral function</span>
<span class="token keyword">for</span> i<span class="token punctuation">,</span> draw <span class="token operator">:</span><span class="token operator">=</span> range <span class="token function">spiral</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Printf</span><span class="token punctuation">(</span><span class="token string">"%*d "</span><span class="token punctuation">,</span> len<span class="token punctuation">,</span> draw<span class="token punctuation">)</span>
<span class="token keyword">if</span> i<span class="token operator">%</span>num <span class="token operator">==</span> num<span class="token operator">-</span><span class="token number">1</span> <span class="token punctuation">{</span>
<span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>
Output
IT IS A SPIRAL PATTERN OF LENGTH 5 0 1 2 3 4 15 16 17 18 5 14 23 24 19 6 13 22 21 20 7 12 11 10 9 8
Description of Code
Declare the package main in the go lang program
We imported the fmt package that includes the files of package fmt. fmt package allows us to print anything on the screen.
Now we have created the spiral() function, and initialize the variables, Also initialize the size of the matrix to print in the spiral format by using the elements of the array.
We have created an array whose elements we will print in the spiral format using for loops.
Use the for loop to print numbers, in a spiral format.
The spiral() function, returns an array.
Start the main() function. Call the spiral function from a loop to print the elements stored in the array.
And finally printing the result in the form of a spiral pattern of numbers, using fmt.Println () function.
Conclusion
We have successfully compiled and executed a go language program to print a spiral pattern of numbers on the screen.
