Skip to main content

Print cube star pattern

In this article, we will discuss how to print a cube star pattern using a C program. The cube star pattern consists of multiple layers of stars arranged in the shape of a cube. We will go through the problem statement, provide an explanation with a suitable example, discuss the algorithm and pseudocode, and finally explain the resulting output with the time complexity of the code.

Problem Statement

The problem is to write a C program that prints a cube star pattern. The pattern consists of multiple layers of stars arranged in the shape of a cube. The width of the cube is provided as input, and the program should print the pattern accordingly.

Example

Let's understand the problem with an example. Suppose the width of the cube is 5. The pattern will look like this:

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

Algorithm

The algorithm for printing the cube star pattern is as follows:

  1. Check if the width is even or less than or equal to 2. If so, return.
  2. Print the top layer of the cube pattern.
  3. Print the middle layers of the cube pattern.
  4. Print the bottom layers of the cube pattern.

Pseudocode

function space(size):
    for i = 0 to size:
        print " "

function print_cube(width):
    if width % 2 == 0 or width <= 2:
        return
    print "Width : ", width

    // Top Layer
    for i = 0 to width / 2:
        space((width - 1) * 2 - (i) * 4)
        print "*"
        space(i * 8 - 1)
        if i != 0:
            print "*"
        print newline

    // Middle Layers
    for i = 1 to width / 2:
        print "*"
        space(i * 4 - 1)
        print "*"
        space((width - 1) * 4 - 1 - i * 8)
        if i < width / 2:
            print "*"
        space(i * 4 - 1)
        print "*"
        print newline

    // Bottom Layers
    for i = 1 to width / 2:
        print "*"
        space((width - 1) * 2 - 1)
        print "*"
        space((width - 1) * 2 - 1)
        print "*"
        print newline

Code Solution

Here given code implementation process.

//C Program 
//Display cube star pattern
#include <stdio.h>
 //include space 
void space(int size)
{
	for (int i = 0; i < size; ++i)
	{
		printf(" ");
	}
}
void print_cube(int width)
{
	if (width % 2 == 0 || width <= 2)
	{
		return;
	}
	printf("\n\nWidth : %d\n\n", width);
	//Top Layer
	/*
	  Print like this

	          *
	        *   *
	      *       *
	    *           *
	  *               *

	*/
	for (int i = 0; i <= width / 2; i++)
	{
		space((width - 1) * 2 - (i) * 4);
		printf("*");
		space(i * 8 - 1);
		if (i != 0)
		{
			printf("*");
		}
		printf("\n");
	}
	//middle layer
	/*
	  Print like this

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

	*/
	for (int i = 1; i <= width / 2; i++)
	{
		printf("*");
		space(i * 4 - 1);
		printf("*");
		space((width - 1) * 4 - 1 - i * 8);
		if (i < width / 2)
		{
			printf("*");
		}
		space(i * 4 - 1);
		printf("*");
		printf("\n");
	}
	/*
	  Print like this

	  *       *       *
	  *       *       *

	*/
	for (int i = 1; i <= width / 2; i++)
	{
		printf("*");
		//middle elements
		space((width - 1) * 2 - 1);
		printf("*");
		//bottom right width elements
		space((width - 1) * 2 - 1);
		printf("*");
		printf("\n");
	}
	//Bottom Layer
	/*
	  Print like this

	  *     *     *
	    *   *   *
	      * * *
	        *
	*/
	for (int i = 1; i <= width / 2; i++)
	{
		//bottom left width element
		space(i * 4);
		printf("*");
		if (i != width / 2)
		{
			//middle elements
			space((width - 1) * 2 - i * 4 - 1);
			printf("*");
			//bottom right width elements
			space((width - 1) * 2 - i * 4 - 1);
			printf("*");
		}
		printf("\n");
	}
}
int main()
{
	//Simple test
	print_cube(5);
	print_cube(7);
	print_cube(11);
	print_cube(9);
	return 0;
}

Output

Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
/*
  Java Program
  Display cube star pattern
*/
class MyPattern
{
	//include space 
	public void space(int size)
	{
		for (int i = 0; i < size; ++i)
		{
			System.out.print(" ");
		}
	}
	public void print_cube(int width)
	{
		if (width % 2 == 0 || width <= 2)
		{
			return;
		}
		System.out.print("\n\nWidth : " + width + "\n\n");
		for (int i = 0; i <= width / 2; i++)
		{
			space((width - 1) * 2 - (i) * 4);
			System.out.print("*");
			space(i * 8 - 1);
			if (i != 0)
			{
				System.out.print("*");
			}
			System.out.print("\n");
		}
		for (int i = 1; i <= width / 2; i++)
		{
			System.out.print("*");
			space(i * 4 - 1);
			System.out.print("*");
			space((width - 1) * 4 - 1 - i * 8);
			if (i < width / 2)
			{
				System.out.print("*");
			}
			space(i * 4 - 1);
			System.out.print("*");
			System.out.print("\n");
		}
		for (int i = 1; i <= width / 2; i++)
		{
			System.out.print("*");
			//middle elements
			space((width - 1) * 2 - 1);
			System.out.print("*");
			//bottom right width elements
			space((width - 1) * 2 - 1);
			System.out.print("*");
			System.out.print("\n");
		}
		for (int i = 1; i <= width / 2; i++)
		{
			//bottom left width element
			space(i * 4);
			System.out.print("*");
			if (i != width / 2)
			{
				//middle elements
				space((width - 1) * 2 - i * 4 - 1);
				System.out.print("*");
				//bottom right width elements
				space((width - 1) * 2 - i * 4 - 1);
				System.out.print("*");
			}
			System.out.print("\n");
		}
	}
	public static void main(String[] args)
	{
		MyPattern obj = new MyPattern();
		//Test Cases
		obj.print_cube(5);
		obj.print_cube(7);
		obj.print_cube(11);
		obj.print_cube(9);
	}
}

Output

Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

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

using namespace std;
class MyPattern
{
	public:
		//include space 
		void space(int size)
		{
			for (int i = 0; i < size; ++i)
			{
				cout << " ";
			}
		}
	void print_cube(int width)
	{
		if (width % 2 == 0 || width <= 2)
		{
			return;
		}
		cout << "\n\nWidth : " << width << "\n\n";
		for (int i = 0; i <= width / 2; i++)
		{
			this->space((width - 1) * 2 - (i) * 4);
			cout << "*";
			this->space(i * 8 - 1);
			if (i != 0)
			{
				cout << "*";
			}
			cout << "\n";
		}
		for (int i = 1; i <= width / 2; i++)
		{
			cout << "*";
			this->space(i * 4 - 1);
			cout << "*";
			this->space((width - 1) * 4 - 1 - i * 8);
			if (i < width / 2)
			{
				cout << "*";
			}
			this->space(i * 4 - 1);
			cout << "*";
			cout << "\n";
		}
		for (int i = 1; i <= width / 2; i++)
		{
			cout << "*";
			//middle elements
			this->space((width - 1) * 2 - 1);
			cout << "*";
			//bottom right width elements
			this->space((width - 1) * 2 - 1);
			cout << "*";
			cout << "\n";
		}
		for (int i = 1; i <= width / 2; i++)
		{
			//bottom left width element
			this->space(i * 4);
			cout << "*";
			if (i != width / 2)
			{
				//middle elements
				this->space((width - 1) * 2 - i * 4 - 1);
				cout << "*";
				//bottom right width elements
				this->space((width - 1) * 2 - i * 4 - 1);
				cout << "*";
			}
			cout << "\n";
		}
	}
};
int main()
{
	MyPattern obj ;
	//Test Cases
	obj.print_cube(5);
	obj.print_cube(7);
	obj.print_cube(11);
	obj.print_cube(9);
	return 0;
}

Output

Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
/*
  C# Program
  Display cube star pattern
*/
using System;
class MyPattern
{
	//include space 
	public void space(int size)
	{
		for (int i = 0; i < size; i++)
		{
			Console.Write(" ");
		}
	}
	public void print_cube(int width)
	{
		if (width % 2 == 0 || width <= 2)
		{
			return;
		}
		Console.Write("\n\nWidth : " + width + "\n\n");
		for (int i = 0; i <= width / 2; i++)
		{
			space((width - 1) * 2 - (i) * 4);
			Console.Write("*");
			space(i * 8 - 1);
			if (i != 0)
			{
				Console.Write("*");
			}
			Console.Write("\n");
		}
		for (int i = 1; i <= width / 2; i++)
		{
			Console.Write("*");
			space(i * 4 - 1);
			Console.Write("*");
			space((width - 1) * 4 - 1 - i * 8);
			if (i < width / 2)
			{
				Console.Write("*");
			}
			space(i * 4 - 1);
			Console.Write("*");
			Console.Write("\n");
		}
		for (int i = 1; i <= width / 2; i++)
		{
			Console.Write("*");
			//middle elements
			space((width - 1) * 2 - 1);
			Console.Write("*");
			//bottom right width elements
			space((width - 1) * 2 - 1);
			Console.Write("*");
			Console.Write("\n");
		}
		for (int i = 1; i <= width / 2; i++)
		{
			//bottom left width element
			space(i * 4);
			Console.Write("*");
			if (i != width / 2)
			{
				//middle elements
				space((width - 1) * 2 - i * 4 - 1);
				Console.Write("*");
				//bottom right width elements
				space((width - 1) * 2 - i * 4 - 1);
				Console.Write("*");
			}
			Console.Write("\n");
		}
	}
	public static void Main(String[] args)
	{
		MyPattern obj = new MyPattern();
		//Test Cases
		obj.print_cube(5);
		obj.print_cube(7);
		obj.print_cube(11);
		obj.print_cube(9);
	}
}

Output

Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
<?php
/*
  Php Program
  Display cube star pattern
*/
class MyPattern
{
	//include space 
	function space($size)
	{
		for ($i = 0; $i < $size; ++$i)
		{
			echo " ";
		}
	}

	function print_cube($width)
	{
		if ($width % 2 == 0 || $width <= 2)
		{
			return;
		}
		echo "\n\nWidth : ". $width ."\n\n";
		for ($i = 0; $i <= intval($width / 2); $i++)
		{
			$this->space(($width - 1) * 2 - ($i) * 4);
			echo "*";
			$this->space($i * 8 - 1);
			if ($i != 0)
			{
				echo "*";
			}
			echo "\n";
		}
		for ($i = 1; $i <= intval($width / 2); $i++)
		{
			echo "*";
			$this->space($i * 4 - 1);
			echo "*";
			$this->space(($width - 1) * 4 - 1 - $i * 8);
			if ($i < intval($width / 2))
			{
				echo "*";
			}
			$this->space($i * 4 - 1);
			echo "*";
			echo "\n";
		}
		for ($i = 1; $i <= intval($width / 2); $i++)
		{
			echo "*";
			//middle elements
			$this->space(($width - 1) * 2 - 1);
			echo "*";
			//bottom right width elements
			$this->space(($width - 1) * 2 - 1);
			echo "*";
			echo "\n";
		}
		for ($i = 1; $i <= intval($width / 2); $i++)
		{
			//bottom left width element
			$this->space($i * 4);
			echo "*";
			if ($i != intval($width / 2))
			{
				//middle elements
				$this->space(($width - 1) * 2 - $i * 4 - 1);
				echo "*";
				//bottom right width elements
				$this->space(($width - 1) * 2 - $i * 4 - 1);
				echo "*";
			}
			echo "\n";
		}
	}
}

function main()
{
	$obj = new MyPattern();
	//Test Cases
	$obj->print_cube(5);
	$obj->print_cube(7);
	$obj->print_cube(11);
	$obj->print_cube(9);
}
main();

Output

Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
/*
  Node Js Program
  Display cube star pattern
*/
class MyPattern
{
	//include space 
	space(size)
	{
		for (var i = 0; i < size; ++i)
		{
			process.stdout.write(" ");
		}
	}
	print_cube(width)
	{
		if (width % 2 == 0 || width <= 2)
		{
			return;
		}
		process.stdout.write("\n\nWidth : " + width + "\n\n");
		for (var i = 0; i <= parseInt(width / 2); i++)
		{
			this.space((width - 1) * 2 - (i) * 4);
			process.stdout.write("*");
			this.space(i * 8 - 1);
			if (i != 0)
			{
				process.stdout.write("*");
			}
			process.stdout.write("\n");
		}
		for (var i = 1; i <= parseInt(width / 2); i++)
		{
			process.stdout.write("*");
			this.space(i * 4 - 1);
			process.stdout.write("*");
			this.space((width - 1) * 4 - 1 - i * 8);
			if (i < parseInt(width / 2))
			{
				process.stdout.write("*");
			}
			this.space(i * 4 - 1);
			process.stdout.write("*");
			process.stdout.write("\n");
		}
		for (var i = 1; i <= parseInt(width / 2); i++)
		{
			process.stdout.write("*");
			//middle elements
			this.space((width - 1) * 2 - 1);
			process.stdout.write("*");
			//bottom right width elements
			this.space((width - 1) * 2 - 1);
			process.stdout.write("*");
			process.stdout.write("\n");
		}
		for (var i = 1; i <= parseInt(width / 2); i++)
		{
			//bottom left width element
			this.space(i * 4);
			process.stdout.write("*");
			if (i != parseInt(width / 2))
			{
				//middle elements
				this.space((width - 1) * 2 - i * 4 - 1);
				process.stdout.write("*");
				//bottom right width elements
				this.space((width - 1) * 2 - i * 4 - 1);
				process.stdout.write("*");
			}
			process.stdout.write("\n");
		}
	}
}

function main()
{
	var obj = new MyPattern();
	//Test Cases
	obj.print_cube(5);
	obj.print_cube(7);
	obj.print_cube(11);
	obj.print_cube(9);
}
main();

Output

Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
#   Python 3 Program
#   Display cube star pattern

class MyPattern :
	# include space 
	def space(self, size) :
		i = 0
		while (i < size) :
			print(" ", end = "")
			i += 1
		
	
	def print_cube(self, width) :
		if (width % 2 == 0 or width <= 2) :
			return
		
		print("\n\nWidth : ", width ,"\n\n", end = "")
		i = 0
		while (i <= int(width / 2)) :
			self.space((width - 1) * 2 - (i) * 4)
			print("*", end = "")
			self.space(i * 8 - 1)
			if (i != 0) :
				print("*", end = "")
			
			print("\n", end = "")
			i += 1
		
		i = 1
		while (i <= int(width / 2)) :
			print("*", end = "")
			self.space(i * 4 - 1)
			print("*", end = "")
			self.space((width - 1) * 4 - 1 - i * 8)
			if (i < int(width / 2)) :
				print("*", end = "")
			
			self.space(i * 4 - 1)
			print("*", end = "")
			print("\n", end = "")
			i += 1
		
		i = 1
		while (i <= int(width / 2)) :
			print("*", end = "")
			# middle elements
			self.space((width - 1) * 2 - 1)
			print("*", end = "")
			# bottom right width elements
			self.space((width - 1) * 2 - 1)
			print("*", end = "")
			print("\n", end = "")
			i += 1
		
		i = 1
		while (i <= int(width / 2)) :
			# bottom left width element
			self.space(i * 4)
			print("*", end = "")
			if (i != int(width / 2)) :
				# middle elements
				self.space((width - 1) * 2 - i * 4 - 1)
				print("*", end = "")
				# bottom right width elements
				self.space((width - 1) * 2 - i * 4 - 1)
				print("*", end = "")
			
			print("\n", end = "")
			i += 1
		
	

def main() :
	obj = MyPattern()
	# Test Cases
	obj.print_cube(5)
	obj.print_cube(7)
	obj.print_cube(11)
	obj.print_cube(9)

if __name__ == "__main__": main()

Output

Width :  5

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


Width :  7

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


Width :  11

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


Width :  9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
#   Ruby Program
#   Display cube star pattern

class MyPattern

	# include space 
	def space(size)
	
		i = 0
		while (i < size)
		
			print(" ")
			i += 1
		end
	end
	def print_cube(width)
	
		if (width % 2 == 0 || width <= 2)
		
			return
		end
		print("\n\nWidth : ", width ,"\n\n")
		i = 0
		while (i <= width / 2)
		
			self.space((width - 1) * 2 - (i) * 4)
			print("*")
			self.space(i * 8 - 1)
			if (i != 0)
			
				print("*")
			end
			print("\n")
			i += 1
		end
		i = 1
		while (i <= width / 2)
		
			print("*")
			self.space(i * 4 - 1)
			print("*")
			self.space((width - 1) * 4 - 1 - i * 8)
			if (i < width / 2)
			
				print("*")
			end
			self.space(i * 4 - 1)
			print("*")
			print("\n")
			i += 1
		end
		i = 1
		while (i <= width / 2)
		
			print("*")
			# middle elements
			self.space((width - 1) * 2 - 1)
			print("*")
			# bottom right width elements
			self.space((width - 1) * 2 - 1)
			print("*")
			print("\n")
			i += 1
		end
		i = 1
		while (i <= width / 2)
		
			# bottom left width element
			self.space(i * 4)
			print("*")
			if (i != width / 2)
			
				# middle elements
				self.space((width - 1) * 2 - i * 4 - 1)
				print("*")
				# bottom right width elements
				self.space((width - 1) * 2 - i * 4 - 1)
				print("*")
			end
			print("\n")
			i += 1
		end
	end
end
def main()

	obj = MyPattern.new()
	# Test Cases
	obj.print_cube(5)
	obj.print_cube(7)
	obj.print_cube(11)
	obj.print_cube(9)
end
main()

Output


Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
/*
  Scala Program
  Display cube star pattern
*/
class MyPattern
{
	//include space 
	def space(size: Int): Unit = {
		var i: Int = 0;
		while (i < size)
		{
			print(" ");
			i += 1;
		}
	}
	def print_cube(width: Int): Unit = {
		if (width % 2 == 0 || width <= 2)
		{
			return;
		}
		print("\n\nWidth : " + width + "\n\n");
		var i: Int = 0;
		while (i <= (width / 2).toInt)
		{
			space((width - 1) * 2 - (i) * 4);
			print("*");
			space(i * 8 - 1);
			if (i != 0)
			{
				print("*");
			}
			print("\n");
			i += 1;
		}
		i = 1;
		while (i <= (width / 2).toInt)
		{
			print("*");
			space(i * 4 - 1);
			print("*");
			space((width - 1) * 4 - 1 - i * 8);
			if (i < (width / 2).toInt)
			{
				print("*");
			}
			space(i * 4 - 1);
			print("*");
			print("\n");
			i += 1;
		}
		i = 1;
		while (i <= (width / 2).toInt)
		{
			print("*");
			//middle elements
			space((width - 1) * 2 - 1);
			print("*");
			//bottom right width elements
			space((width - 1) * 2 - 1);
			print("*");
			print("\n");
			i += 1;
		}
		i = 1;
		while (i <= (width / 2).toInt)
		{
			//bottom left width element
			space(i * 4);
			print("*");
			if (i != (width / 2).toInt)
			{
				//middle elements
				space((width - 1) * 2 - i * 4 - 1);
				print("*");
				//bottom right width elements
				space((width - 1) * 2 - i * 4 - 1);
				print("*");
			}
			print("\n");
			i += 1;
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var obj: MyPattern = new MyPattern();
		//Test Cases
		obj.print_cube(5);
		obj.print_cube(7);
		obj.print_cube(11);
		obj.print_cube(9);
	}
}

Output

Width : 5

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


Width : 7

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


Width : 11

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


Width : 9

                *
            *       *
        *               *
    *                       *
*                               *
*   *                       *   *
*       *               *       *
*           *       *           *
*               *               *
*               *               *
*               *               *
*               *               *
*               *               *
    *           *           *
        *       *       *
            *   *   *
                *
/*
  Swift Program
  Display cube star pattern
*/
class MyPattern
{
	//include space 
	func space(_ size: Int)
	{
		var i: Int = 0;
		while (i < size)
		{
			print(" ", terminator: "");
			i += 1;
		}
	}
	func print_cube(_ width: Int)
	{
		if (width % 2 == 0 || width <= 2)
		{
			return;
		}
		print("\n\nWidth : ", width ,"\n\n", terminator: "");
		var i: Int = 0;
		while (i <= width / 2)
		{
			self.space((width - 1) * 2 - (i) * 4);
			print("*", terminator: "");
			self.space(i * 8 - 1);
			if (i != 0)
			{
				print("*", terminator: "");
			}
			print("\n", terminator: "");
			i += 1;
		}
		i = 1;
		while (i <= width / 2)
		{
			print("*", terminator: "");
			self.space(i * 4 - 1);
			print("*", terminator: "");
			self.space((width - 1) * 4 - 1 - i * 8);
			if (i < width / 2)
			{
				print("*", terminator: "");
			}
			self.space(i * 4 - 1);
			print("*", terminator: "");
			print("\n", terminator: "");
			i += 1;
		}
		i = 1;
		while (i <= width / 2)
		{
			print("*", terminator: "");
			//middle elements
			self.space((width - 1) * 2 - 1);
			print("*", terminator: "");
			//bottom right width elements
			self.space((width - 1) * 2 - 1);
			print("*", terminator: "");
			print("\n", terminator: "");
			i += 1;
		}
		i = 1;
		while (i <= width / 2)
		{
			//bottom left width element
			self.space(i * 4);
			print("*", terminator: "");
			if (i != width / 2)
			{
				//middle elements
				self.space((width - 1) * 2 - i * 4 - 1);
				print("*", terminator: "");
				//bottom right width elements
				self.space((width - 1) * 2 - i * 4 - 1);
				print("*", terminator: "");
			}
			print("\n", terminator: "");
			i += 1;
		}
	}
}
func main()
{
	let obj: MyPattern = MyPattern();
	//Test Cases
	obj.print_cube(5);
	obj.print_cube(7);
	obj.print_cube(11);
	obj.print_cube(9);
}
main();

Output

Width :  5

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


Width :  7

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


Width :  11

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


Width :  9

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

Time Complexity

The time complexity of the code is O(n^2), where n is the width of the cube. The loops iterate over the width and height of the cube, resulting in a quadratic time complexity. The space complexity is O(1) since the code only uses a constant amount of additional space.





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