In this article, we will understand how to print spiral pattern of numbers. The pattern is formed by using multiple for-loops and print statements.
Below is a demonstration of the same −
Input
Suppose our input is −
Enter the size : 5
Output
The desired output would be −
The spiral pattern 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 5 5 4 3 3 3 3 3 4 5 5 3 2 2 4 2 3 4 5 5 4 3 2 1 2 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 3 3 3 3 4 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5
Algorithm
Step 1 - START Step 2 - Declare three integer values namely i, my_pattern_size and my_input Step 3 - Read the required values from the user/ define the values Step 4 - Assign 2 * my_input – 1 value to my_pattern_size Step 4 - We iterate through two nested 'for' loops to get space between the characters. Step 5 - After iterating through the innermost loop, we iterate through another 'for' loop. This will help print the required character. Step 6 - Now, print a value of Math.max(Math.abs(i - my_input), Math.abs(j - my_input)) + 1 + in the subsequent lines. Step 7 - Display the result Step 8 - Stop
Example 1
Here, the input is being entered by the user based on a prompt. You can try this example live in our coding ground tool .
import java.util.Scanner; import java.lang.Math; public class SpiralPattern{ public static void main(String args[]){ int my_input , i, j,my_pattern_size ; System.out.println("Required packages have been imported"); Scanner my_scanner = new Scanner(System.in); System.out.println("A reader object has been defined "); System.out.print("Enter the size : "); my_input = my_scanner.nextInt(); System.out.print("The spiral pattern "); System.out.println(); my_pattern_size = 2 * my_input - 1; for( i = 1; i <= my_pattern_size; i++){ for( j = 1; j <= my_pattern_size; j++){ System.out.print(Math.max(Math.abs(i - my_input), Math.abs(j - my_input)) + 1 + " "); } System.out.println(); } } }
Output
Required packages have been imported A reader object has been defined Enter the size : 5 The spiral pattern 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 5 5 4 3 3 3 3 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 2 1 2 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 3 3 3 3 4 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5
Example 2
Here, the integer has been previously defined, and its value is accessed and displayed on the console.
import java.lang.Math; public class SpiralPattern{ public static void main(String args[]){ int my_input , i, j,my_pattern_size ; System.out.println("Required packages have been imported"); my_input = 5; System.out.println("The size is defined as " +my_input); System.out.print("The spiral pattern "); System.out.println(); my_pattern_size = 2 * my_input - 1; for( i = 1; i <= my_pattern_size; i++){ for( j = 1; j <= my_pattern_size; j++){ System.out.print(Math.max(Math.abs(i - my_input), Math.abs(j - my_input)) + 1 + " "); } System.out.println(); } } }
Output
Required packages have been imported The size is defined as 5 The spiral pattern 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 5 5 4 3 3 3 3 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 2 1 2 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 3 3 3 3 4 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5