Posted on by Kalkicode
Code Pattern

Display S symbol pattern

The "S" symbol pattern is a pattern that resembles the letter "S" and is formed using asterisks (*) and spaces. The program provided displays the "S" pattern for a given even height. The height determines the size of the pattern. The code is implemented in the C programming language.

Problem Statement

The goal is to create a program that generates an "S" pattern with a given even height. The pattern consists of asterisks (*) arranged in a specific manner to form the shape of the letter "S". The program should only accept even heights greater than 4 as input. If an invalid height is provided, the program should not generate any output.

For example, if the input height is 10, the program should produce the following output:

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Algorithm

The algorithm to generate the "S" pattern can be described as follows:

  1. Check if the given height is less than or equal to 4 or if it is an odd number. If either condition is true, return without generating any output.
  2. Print the height value for reference.
  3. Iterate over each row from 1 to height - 1:
    • Iterate over each column from 1 to height - 1:
      • If the current position satisfies any of the conditions to print an asterisk (*), print "*" and increment the column by 1.
      • Otherwise, print a space character to maintain the pattern shape.
  4. Print a new line after each row iteration.

Pseudocode

show_s(height):
    if height <= 4 or height % 2 != 0:
        return
    print "Height: " + height
    for i in range(1, height):
        for j in range(1, height):
            if i + 1 == height or height / 2 == i or (i < height / 2 and j == 1) or (i > height / 2 and j + 1 == height) or i == 1:
                print "* ",
                j += 1
            else:
                print " ",
        print new line

main():
    show_s(10)
    show_s(16)
    show_s(6)

Code Solution

//C Program
//Display S pattern
#include <stdio.h>

//Display 'S' pattern of given Even size height
void show_s(int height)
{
	if (height <= 4 || height % 2 != 0)
	{
		// When number is less than 4 or height is not Even size
		return;
	}
	printf("Height : %d \n\n", height);
	for (int i = 1; i < height; ++i)
	{
		for (int j = 1; j < height; ++j)
		{
			// Condition which is print the star pattern
			if (i + 1 == height || height / 2 == i || (i < height / 2 && j == 1) || (i > height / 2 && j + 1 == height) || i == 1)
			{
				printf("* ");
				j += 1;
			}
			else
			{
				//Include space
				printf(" ");
			}
		}
		printf("\n");
	}
	printf("\n");
}
int main()
{
	//Test Cases
	show_s(10);
	show_s(16);
	show_s(6);
	return 0;
}

Output

Height : 10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height : 16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height : 6

* * *
*
* * *
    *
* * *
// Java Program
// Display S pattern
class MyPattern
{
	//Display 'S' pattern of given Even size height
	public void show_s(int height)
	{
		if (height <= 4 || height % 2 != 0)
		{
			// When number is less than 4 or height is not Even size
			return;
		}
		System.out.print("Height : " + height + " \n\n");
		for (int i = 1; i < height; ++i)
		{
			for (int j = 1; j < height; ++j)
			{
				// Condition which is print the star pattern
				if (i + 1 == height || height / 2 == i || (i < height / 2 && j == 1) || (i > height / 2 && j + 1 == height) || i == 1)
				{
					System.out.print("* ");
					j += 1;
				}
				else
				{
					//Include space
					System.out.print(" ");
				}
			}
			System.out.print("\n");
		}
		System.out.print("\n");
	}
	public static void main(String[] args)
	{
		MyPattern obj = new MyPattern();
		//Test Cases
		obj.show_s(10);
		obj.show_s(16);
		obj.show_s(6);
	}
}

Output

Height : 10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height : 16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height : 6

* * *
*
* * *
    *
* * *
// C++ Program
// Display S pattern
#include<iostream>

using namespace std;
class MyPattern
{
	public:
		//Display 'S' pattern of given Even size height
		void show_s(int height)
		{
			if (height <= 4 || height % 2 != 0)
			{
				// When number is less than 4 or height is not Even size
				return;
			}
			cout << "Height : " << height << " \n\n";
			for (int i = 1; i < height; ++i)
			{
				for (int j = 1; j < height; ++j)
				{
					// Condition which is print the star pattern
					if (i + 1 == height || height / 2 == i || (i < height / 2 && j == 1) || (i > height / 2 && j + 1 == height) || i == 1)
					{
						cout << "* ";
						j += 1;
					}
					else
					{
						cout << " ";
					}
				}
				cout << "\n";
			}
			cout << "\n";
		}
};
int main()
{
	MyPattern obj ;
	//Test Cases
	obj.show_s(10);
	obj.show_s(16);
	obj.show_s(6);
	return 0;
}

Output

Height : 10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height : 16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height : 6

* * *
*
* * *
    *
* * *
// C# Program
// Display S pattern
using System;
class MyPattern
{
	//Display 'S' pattern of given Even size height
	public void show_s(int height)
	{
		if (height <= 4 || height % 2 != 0)
		{
			// When number is less than 4 or height is not Even size
			return;
		}
		Console.Write("Height : " + height + " \n\n");
		for (int i = 1; i < height; i++)
		{
			for (int j = 1; j < height; j++)
			{
				// Condition which is print the star pattern
				if (i + 1 == height || height / 2 == i || (i < height / 2 && j == 1) || (i > height / 2 && j + 1 == height) || i == 1)
				{
					Console.Write("* ");
					j += 1;
				}
				else
				{
					Console.Write(" ");
				}
			}
			Console.Write("\n");
		}
		Console.Write("\n");
	}
	public static void Main(String[] args)
	{
		MyPattern obj = new MyPattern();
		//Test Cases
		obj.show_s(10);
		obj.show_s(16);
		obj.show_s(6);
	}
}

Output

Height : 10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height : 16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height : 6

* * *
*
* * *
    *
* * *
<?php
// Php Program
// Display S pattern
class MyPattern
{
	//Display 'S' pattern of given Even size height
	public 	function show_s($height)
	{
		if ($height <= 4 || $height % 2 != 0)
		{
			return;
		}
		echo("Height : ". $height ." \n\n");
		for ($i = 1; $i < $height; ++$i)
		{
			for ($j = 1; $j < $height; ++$j)
			{
				// Condition which is print the star pattern
				if ($i + 1 == $height || intval($height / 2) == $i || ($i < intval($height / 2) && $j == 1) || ($i > intval($height / 2) && $j + 1 == $height) || $i == 1)
				{
					echo("* ");
					$j += 1;
				}
				else
				{
					//Include space
					echo(" ");
				}
			}
			echo("\n");
		}
		echo("\n");
	}
}

function main()
{
	$obj = new MyPattern();
	//Test Cases
	$obj->show_s(10);
	$obj->show_s(16);
	$obj->show_s(6);
}
main();

Output

Height : 10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height : 16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height : 6

* * *
*
* * *
    *
* * *
// Node Js Program
// Display S pattern
class MyPattern
{
	//Display 'S' pattern of given Even size height
	show_s(height)
	{
		if (height <= 4 || height % 2 != 0)
		{
			return;
		}
		process.stdout.write("Height : " + height + " \n\n");
		for (var i = 1; i < height; ++i)
		{
			for (var j = 1; j < height; ++j)
			{
				// Condition which is print the star pattern
				if (i + 1 == height || parseInt(height / 2) == i || (i < parseInt(height / 2) && j == 1) || (i > parseInt(height / 2) && j + 1 == height) || i == 1)
				{
					process.stdout.write("* ");
					j += 1;
				}
				else
				{
					//Include space
					process.stdout.write(" ");
				}
			}
			process.stdout.write("\n");
		}
		process.stdout.write("\n");
	}
}

function main(args)
{
	var obj = new MyPattern();
	//Test Cases
	obj.show_s(10);
	obj.show_s(16);
	obj.show_s(6);
}
main();

Output

Height : 10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height : 16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height : 6

* * *
*
* * *
    *
* * *
#  Python 3 Program
#  Display S pattern
class MyPattern :
	# Display 'S' pattern of given Even size height
	def show_s(self, height) :
		if (height <= 4 or height % 2 != 0) :
			return
		
		print("Height : ", height ," \n\n", end = "")
		i = 1
		j = 0
		while (i < height) :
			j = 1
			while (j < height) :
				#  Condition which is print the star pattern
				if (i + 1 == height or int(height / 2) == i or(i < int(height / 2) and j == 1) or(i > int(height / 2) and j + 1 == height) or i == 1) :
					print("* ", end = "")
					j += 1
				else :
					print(" ", end = "")
				
				j += 1
			
			print(end = "\n")
			i += 1
		
		print(end = "\n")
	

def main() :
	obj = MyPattern()
	# Test Cases
	obj.show_s(10)
	obj.show_s(16)
	obj.show_s(6)


if __name__ == "__main__": main()

Output

Height :  10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height :  16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height :  6

* * *
*
* * *
    *
* * *
#  Ruby Program
#  Display S pattern
class MyPattern

	# Display 'S' pattern of given Even size height
	def show_s(height)
	
		if (height <= 4 || height % 2 != 0)
		
			return
		end
		print("Height  :", height ," \n\n")
		i = 1
		j = 0
		while (i < height)
		
			j = 1
			while (j < height)
			
				#  Condition which is print the star pattern
				if (i + 1 == height || height / 2 == i || (i < height / 2 && j == 1) || (i > height / 2 && j + 1 == height) || i == 1)
				
					print("* ")
					j += 1
				else
				
					print(" ")
				end
				j += 1
			end
			print("\n")
			i += 1
		end
		print("\n")
	end
end
def main()

	obj = MyPattern.new()
	# Test Cases
	obj.show_s(10)
	obj.show_s(16)
	obj.show_s(6)
end
main()

Output

Height  :10 

* * * * * 
*        
*        
*        
* * * * * 
        * 
        * 
        * 
* * * * * 

Height  :16 

* * * * * * * * 
*              
*              
*              
*              
*              
*              
* * * * * * * * 
              * 
              * 
              * 
              * 
              * 
              * 
* * * * * * * * 

Height  :6 

* * * 
*    
* * * 
    * 
* * * 

// Scala Program
// Display S pattern
class MyPattern
{
	//Display 'S' pattern of given Even size height
	def show_s(height: Int): Unit = {
		if (height <= 4 || height % 2 != 0)
		{
			return;
		}
		print("Height : " + height + " \n\n");
		var i: Int = 1;
		var j: Int = 0;
		while (i < height)
		{
			j = 1;
			while (j < height)
			{
				// Condition which is print the star pattern
				if (i + 1 == height || (height / 2).toInt == i || (i < (height / 2).toInt && j == 1) || (i > (height / 2).toInt && j + 1 == height) || i == 1)
				{
					print("* ");
					j += 1;
				}
				else
				{
					print(" ");
				}
				j += 1;
			}
			print("\n");
			i += 1;
		}
		print("\n");
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var obj: MyPattern = new MyPattern();
		//Test Cases
		obj.show_s(10);
		obj.show_s(16);
		obj.show_s(6);
	}
}

Output

Height : 10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height : 16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height : 6

* * *
*
* * *
    *
* * *
// Swift Program
// Display S pattern
class MyPattern
{
	//Display "S" pattern of given Even size height
	func show_s(_ height: Int)
	{
		if (height <= 4 || height % 2 != 0)
		{
			return;
		}
		print("Height : ", height ," \n");
		var i: Int = 1;
		var j: Int = 0;
		while (i < height)
		{
			j = 1;
			while (j < height)
			{
				// Condition which is print the star pattern
				if (i + 1 == height || height / 2 == i || (i < height / 2 && j == 1) || (i > height / 2 && j + 1 == height) || i == 1)
				{
					print("*", terminator: " ");
					j += 1;
				}
				else
				{
					print(terminator: " ");
				}
				j += 1;
			}
			print(terminator: "\n");
			i += 1;
		}
		print(terminator: "\n");
	}
}
func main()
{
	let obj: MyPattern = MyPattern();
	//Test Cases
	obj.show_s(10);
	obj.show_s(16);
	obj.show_s(6);
}
main();

Output

Height :  10

* * * * *
*
*
*
* * * * *
        *
        *
        *
* * * * *

Height :  16

* * * * * * * *
*
*
*
*
*
*
* * * * * * * *
              *
              *
              *
              *
              *
              *
* * * * * * * *

Height :  6

* * *
*
* * *
    *
* * *

Time Complexity

The time complexity of the algorithm is O(height^2) since it involves nested loops iterating from 1 to the given height.

Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment