Java Program to Print Spiral Pattern of Numbers

JavaObject Oriented ProgrammingProgramming

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
raja
Updated on 25-Feb-2022 12:42:01

Advertisements