Given an even integer input, the task is to write a Python program to print a heart using loops and mathematical formulations.
Example :
For n = 8 * * * * * * * * * * G F G * * * * * * * * For n = 14 * * * * * * * * * * * * * * * * * * G F G * * * * * * * * * * * * * *
Approach :
The following steps are used :
- Form the worksheet of n X n+1 using two loops.
- Apply the if-else conditions for printing stars.
- Apply the if-else conditions for printing text “GFG”.
- Apply else condition for rest spaces.
Note: The value of n must be greater than 8
Below is the implementation of the above approach :
Python3
# define size n = even only n = 8 # so this heart can be made n//2 part left, # n//2 part right, and one middle line # i.e; columns m = n + 1 m = n + 1 # loops for upper part for i in range (n / / 2 - 1 ): for j in range (m): # condition for printing stars to GFG upper line if i = = n / / 2 - 2 and (j = = 0 or j = = m - 1 ): print ( "*" , end = " " ) # condition for printing stars to left upper elif j < = m / / 2 and ((i + j = = n / / 2 - 3 and j < = m / / 4 ) \ or (j - i = = m / / 2 - n / / 2 + 3 and j > m / / 4 )): print ( "*" , end = " " ) # condition for printing stars to right upper elif j > m / / 2 and ((i + j = = n / / 2 - 3 + m / / 2 and j < 3 * m / / 4 ) \ or (j - i = = m / / 2 - n / / 2 + 3 + m / / 2 and j > = 3 * m / / 4 )): print ( "*" , end = " " ) # condition for printing spaces else : print ( " " , end = " " ) print () # loops for lower part for i in range (n / / 2 - 1 , n): for j in range (m): # condition for printing stars if (i - j = = n / / 2 - 1 ) or (i + j = = n - 1 + m / / 2 ): print ( '*' , end = " " ) # condition for printing GFG elif i = = n / / 2 - 1 : if j = = m / / 2 - 1 or j = = m / / 2 + 1 : print ( 'G' , end = " " ) elif j = = m / / 2 : print ( 'F' , end = " " ) else : print ( ' ' , end = " " ) # condition for printing spaces else : print ( ' ' , end = " " ) print () |
Output:
* * * * * * * * * * * * * * * * * * G F G * * * * * * * * * * * * * *
Time complexity: O(n2) for given input n
Auxiliary Space: O(1)