Skip to main content

Featured

say hello world with C++ - Solution in Hacker Rank - hackerranksolutions8

  Objective This is a simple challenge to help you practice printing to  stdout . You may also want to complete  Solve Me First  in C++ before attempting this challenge. We’re starting out by printing the most famous computing phrase of all time! In the editor below, use either  printf  or  cout  to print the string  Hello ,World!  to  stdout . The more popular command form is  cout . It has the following basic form: cout<<value_to_print<<value_to_print; Any number of values can be printed using one command as shown. The  printf  command comes from C language. It accepts an optional format specification and a list of variables. Two examples for printing a string are: printf("%s", string);   printf(string); Note that neither method adds a newline. It only prints what you tell it to. Output Format Print   Hello ,World!   to stdout. Sample Output Hello, World! Solution:- //Say Hello, ...

Box it! – Solution in Hacker Rank - hackerranksolutions8


Problem


Design a class named Box whose dimensions are integers and private to the class. The dimensions are labelled: length l, breadth b, and height h.

The default constructor of the class should initialize lb, and h to 0.

The parameterized constructor Box(int length, int breadth, int height) should initialize Box's lb and h to length, breadth and height.

The copy constructor Box (Box B) should set lb and h to B's lb and h, respectively.

Apart from the above, the class should have 4 functions:
  • int getLength() - Return box's length
  • int getBreadth() - Return box's breadth
  • int getHeight() - Return box's height
  • long long CalculateVolume() - Return the volume of the box
Overload the operator < for the class Box. Box A < Box B if:
  1. A.l < B.l
  2. B.b < B.b and A.l == B.l
  3. A.h < B.h and A.b == B.b and A.l == B.l
Overload operator << for the class Box().
if B is an Object of class Box:
cout<<B should print B.lB.b and B.h on a single line separated by spaces.



Constraints :

 0 <= l,b,h <= 10^5
Two boxes being compared using the < operator will not have all three dimensions equal.



Solution :

//Box it! - Hacker Rank Solution
#include<bits/stdc++.h>

using namespace std;

//Implement the class Box  
class Box 
{
    private:
    //l,b,h are integers representing the dimensions of the box
    int length, breadth, height;
    public:
    // Constructors: 
    // Box();
    Box() 
    {
        length = 0;
        breadth = 0;
        height = 0;
    }
    // Box(int,int,int);
    Box(int l, int b, int h) 
    {
        length = l;
        breadth = b;
        height = h;
    }
    // Box(Box);
    Box(const Box &B) 
    {
        length = B.length;
        breadth = B.breadth;
        height = B.height;
    }
    // int getLength(); // Return box's length
    int getLength() 
    {
        return length;
    }
    // int getBreadth (); // Return box's breadth
    int getBreadth() 
    {
        return breadth;
    }
    // int getHeight ();  //Return box's height
    int getHeight() 
    {
        return height;
    }
    // long long CalculateVolume(); // Return the volume of the box
    long long CalculateVolume() 
    {
        return (long long)(breadth) * length * height;
    }
    //Overload operator < as specified
    //bool operator<(Box& b)
    bool operator<(Box &B) 
    {
        if (length < B.length) 
        {
            return true;
        } 
        else if (length == B.length) 
        {
            if (breadth < B.breadth) 
            {
                return true;
            } 
            else if (breadth == B.breadth) 
            {
                if (height < B.height) 
                {
                return true;
                }
            }
        }

        return false;
    }
};
//Overload operator << as specified
//ostream& operator<<(ostream& out, Box& B)
ostream &operator<<(ostream &out, Box &B) 
{
    out << B.getLength() << " " << B.getBreadth() << " " << B.getHeight();
    return out;
};

void check2()
{
	int n;
	cin>>n;
	Box temp;
	for(int i=0;i<n;i++)
	{
		int type;
		cin>>type;
		if(type ==1)
		{
			cout<<temp<<endl;
		}
		if(type == 2)
		{
			int l,b,h;
			cin>>l>>b>>h;
			Box NewBox(l,b,h);
			temp=NewBox;
			cout<<temp<<endl;
		}
		if(type==3)
		{
			int l,b,h;
			cin>>l>>b>>h;
			Box NewBox(l,b,h);
			if(NewBox<temp)
			{
				cout<<"Lesser\n";
			}
			else
			{
				cout<<"Greater\n";
			}
		}
		if(type==4)
		{
			cout<<temp.CalculateVolume()<<endl;
		}
		if(type==5)
		{
			Box NewBox(temp);
			cout<<NewBox<<endl;
		}

	}
}

int main()
{
	check2();
}

Comments