Skip to content
Related Articles

Related Articles

Improve Article

Wishing your Valentine with a Program!!

  • Difficulty Level : Hard
  • Last Updated : 19 Jan, 2021

This valentine, gift your loved ones a heart with a message written within it to express what you feel about them. Don’t miss the moment to surprise them. 
This article demonstrates the code to surprise them. The Best wishes to all the programmer loved ones < 3. 

Below is the code.

C++




// C++ code to print happy valentine's
// day.
#include <bits/stdc++.h>
using namespace std;
 
int main() {
 
  // initializing variables and size
  double a, b, n = 10;
 
  // initializing String to print in heart
  string message = " HappY Valentines DaY <3 ";
 
  // Position from where from top
  // message box would be placed.
  int print_message = 4;
 
  // add space if message length is odd
  if (message.length() % 2 != 0)
    message += " ";
 
  // outer loop to adjust length of upper
  // part message is not handled in this part
  for (a = 0; a < n; a++) {
 
    // to print space and variable accordingly
    for (b = 0; b <= 4 * n; b++) {
 
      // computing distance to print variable
      double distance1 = sqrt(pow(a - n, 2) + pow(b - n, 2));
      double distance2 = sqrt(pow(a - n, 2) + pow(b - 3 * n, 2));
 
      if (distance1 < n + 0.5 || distance2 < n + 0.5)
        cout << "S";
 
      else
        cout << " ";
    }
 
    // ending line after each iteration
    cout << "\n";
  }
 
  // printing the message part
  // and lower part of heart.
  // outer loop handles
  // depth of the heart.
  for (a = 1; a < 2 * n; a++) {
 
    // for getting the lower curve of heart
    for (b = 0; b < a; b++)
      cout << " ";
 
    // inner loop
    // handles the message and spaces accordingly
    for (b = 0; b < 4 * n + 1 - 2 * a; b++) {
 
      // checks if the height is in range of message
      // space
      if (a >= print_message - 1 && a <= print_message + 1) {
        int point = b - (4 * n - 2 * a - message.size()) / 2;
 
        // prints message after leaving appropriate space
        if (point < message.size() && point >= 0) {
          if (a == print_message)
            cout << message[point];
          else
            cout << " ";
        }
 
        else
          cout << "S";
      }
 
      else
        cout << "S";
    }
 
    cout << endl;
  }
}

Java




// Java code to print happy valentine's day.
class GFG {
     
    public static void main(String[] args) {
         
         
        // initializing variables and size
        double a, b, n = 10;
     
        // initializing String to print in heart
        String message = " HappY Valentines DaY <3 ";
     
        // Position from where from top
        // message box would be placed.
        int print_message = 4;
     
        // add space if message length is odd
        if (message.length() % 2 != 0)
            message += " ";
     
        // outer loop to adjust length of upper
        // part message is not handled in this part
        for (a = 0; a < n; a++) {
     
            // to print space and variable accordingly
            for (b = 0; b <= 4 * n; b++) {
         
                // computing distance to print variable
                double distance1 = Math.sqrt(Math.pow(a - n, 2)
                                         + Math.pow(b - n, 2));
                double distance2 = Math.sqrt(Math.pow(a - n, 2)
                                    + Math.pow(b - 3 * n, 2));
         
                if (distance1 < n + 0.5 || distance2 < n + 0.5)
                    System.out.print("S");
         
                else
                    System.out.print(" ");
            }
         
            // ending line after each iteration
            System.out.println();
        }
     
        // printing the message part
        // and lower part of heart.
        // outer loop handles
        // depth of the heart.
        for (a = 1; a < 2 * n; a++) {
     
            // for getting the lower curve of heart
            for (b = 0; b < a; b++)
                System.out.print(" ");
         
            // inner loop handles the message
            // and spaces accordingly
            for (b = 0; b < 4 * n + 1 - 2 * a; b++) {
         
                // checks if the height is in range
                // of message space
                if (a >= print_message - 1 &&
                             a <= print_message + 1) {
                     
                    double point = b - (4 * n - 2 * a
                                 - message.length()) / 2;
             
                    // prints message after leaving
                    // appropriate space
                    if (point < message.length() &&
                                          point >= 0) {
                        if (a == print_message)
                            System.out.print
                               (message.charAt((int)point));
                        else
                            System.out.print(" ");
                    }
             
                    else
                        System.out.print("S");
                }
         
                else
                    System.out.print("S");
            }
         
            System.out.println();
        }
    }
}
 
// This code is contributed by Anant Agarwal.

Python3




# Python3 code to print happy valentine's
# day
import math
 
n = 10
 
# Initializing String to print in heart
message = " HappY Valentines DaY <3 "
 
# Position from where from top
# message box would be placed.
print_message = 4
 
# Add space if message length is odd
if (len(message) % 2 != 0):
    message += " "
 
# Outer loop to adjust length of upper
# part message is not handled in this part
for a in range(n):
     
    # To print space and variable accordingly
    for b in range(4 * n + 1):
         
        # Computing distance to print variable
        distance1 = math.sqrt(pow(a - n, 2) +
                              pow(b - n, 2))
        distance2 = math.sqrt(pow(a - n, 2) +
                              pow(b - 3 * n, 2))
                               
        if (distance1 < n + 0.5 or
            distance2 < n + 0.5):
            print("S", end = "")
        else:
            print(" ", end = "")
 
    # Ending line after each iteration
    print()
 
# Printing the message part and lower
# part of heart. Outer loop handles
# depth of the heart.
for a in range(1, 2 * n):
 
    # For getting the lower curve of heart
    for b in range(a):
        print(" ", end = "")
         
    # Inner loop
    # handles the message and spaces accordingly
    for b in range(4 * n + 1 - 2 * a):
         
        # Checks if the height is in range of
        # message space
        if (a >= print_message - 1 and
            a <= print_message + 1):
            point = b - (4 * n - 2 *
                    a - len(message)) // 2
 
            # Prints message after leaving
            # appropriate space
            if (point < len(message) and point >= 0):
                if (a == print_message):
                    print(message[point], end = "")
                else:
                    print(" ", end = "")
            else:
                print("S", end = "")
 
        else:
            print("S", end = "")
 
    print()
 
# This code is contributed by subhammahato348

C#




// C# code to print happy valentine's day.
using System;
class GFG
{
 
    public static void Main()
    {
 
        // initializing variables and size
        double a, b, n = 10;
 
        // initializing String to print in heart
        string message = " HappY Valentines DaY <3 ";
 
        // Position from where from top
        // message box would be placed.
        int print_message = 4;
 
        // add space if message length is odd
        if (message.Length % 2 != 0)
            message += " ";
 
        // outer loop to adjust length of upper
        // part message is not handled in this part
        for (a = 0; a < n; a++) {
 
            // to print space and variable accordingly
            for (b = 0; b <= 4 * n; b++) {
 
                // computing distance to print variable
                double distance1
                    = Math.Sqrt(Math.Pow(a - n, 2)
                                + Math.Pow(b - n, 2));
                double distance2
                    = Math.Sqrt(Math.Pow(a - n, 2)
                                + Math.Pow(b - 3 * n, 2));
                if (distance1 < n + 0.5
                    || distance2 < n + 0.5)
                    Console.Write("S");
 
                else
                    Console.Write(" ");
            }
 
            // ending line after each iteration
            Console.WriteLine();
        }
 
        // printing the message part
        // and lower part of heart.
        // outer loop handles
        // depth of the heart.
        for (a = 1; a < 2 * n; a++) {
 
            // for getting the lower curve of heart
            for (b = 0; b < a; b++)
                Console.Write(" ");
 
            // inner loop handles the message
            // and spaces accordingly
            for (b = 0; b < 4 * n + 1 - 2 * a; b++)
            {
 
                // checks if the height is in range
                // of message space
                if (a >= print_message - 1
                    && a <= print_message + 1)
                {
 
                    double point = b
                          - (4 * n - 2 * a - message.Length)
                                / 2;
 
                    // prints message after leaving
                    // appropriate space
                    if (point < message.Length
                        && point >= 0) {
                        if (a == print_message)
                            Console.Write(
                                message[(int)point]);
                        else
                            Console.Write(" ");
                    }
 
                    else
                        Console.Write("S");
                }
 
                else
                    Console.Write("S");
            }
 
            Console.WriteLine();
        }
    }
}
 
// This code is contributed by subhammahato348

Output: 

       SSSSSSS             SSSSSSS       
     SSSSSSSSSSS         SSSSSSSSSSS     
    SSSSSSSSSSSSS       SSSSSSSSSSSSS    
   SSSSSSSSSSSSSSS     SSSSSSSSSSSSSSS   
  SSSSSSSSSSSSSSSSS   SSSSSSSSSSSSSSSSS  
 SSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSS 
 SSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSS 
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
 SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
   SSSS                          SSSSS
    SSS HappY Valentines DaY <3  SSSS
     SS                          SSS
      SSSSSSSSSSSSSSSSSSSSSSSSSSSSS
       SSSSSSSSSSSSSSSSSSSSSSSSSSS
        SSSSSSSSSSSSSSSSSSSSSSSSS
         SSSSSSSSSSSSSSSSSSSSSSS
          SSSSSSSSSSSSSSSSSSSSS
           SSSSSSSSSSSSSSSSSSS
            SSSSSSSSSSSSSSSSS
             SSSSSSSSSSSSSSS
              SSSSSSSSSSSSS
               SSSSSSSSSSS
                SSSSSSSSS
                 SSSSSSS
                  SSSSS
                   SSS

Sources : 

Note: Works well with value of N atleast 8. You can alter the character you need to use (S in the case above.) .
 

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :