# 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.