Java Program to Print Spiral Pattern of Numbers


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 run button.

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

Updated on: 25-Feb-2022

775 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements