Print Pretty – HackerRank Solution

Print Pretty – HackerRank Solution

Problem :

Your manager gave you a text file with many lines of numbers to format and print. For each row of space-separated doubles, format and print the numbers using the specifications in the Output Format section below.

Input Format :

The first line contains an integer, T, the number of test cases.
Each of the T subsequent lines describes a test case as 3 space-separated floating-point numbers: AB, and C, respectively.

Constraints :

  • 1 <= T <= 1000
  • Each number will fit into a double.

Output Format :

For each test case, print 3 lines containing the formatted AB, and C, respectively. Each AB, and C must be formatted as follows:

  1. : Strip its decimal (i.e., truncate it) and print its hexadecimal representation (including the Ox prefix) in lower case letters.
  2. : Print it to a scale of 2 decimal places, preceded by a + or - sign (indicating if it’s positive or negative), right justified, and left-padded with underscores so that the printed result is exactly 15 characters wide.
  3. : Print it to a scale of exactly nine decimal places, expressed in scientific notation using upper case.

Sample Input :

1  
100.345 2006.008 2331.41592653498

Sample Output :

0x64             
_______+2006.01  
2.331415927E+03

Solution :

#include <iostream>
#include <iomanip> 
using namespace std;

int main() {
	int T; cin >> T;
	cout << setiosflags(ios::uppercase);
	cout << setw(0xf) << internal;
	while(T--) {
		double A; cin >> A;
		double B; cin >> B;
		double C; cin >> C;

        cout << showbase << hex << left << nouppercase << long(A) << endl;
        cout << setw(15) << right << setfill('_') << showpos << fixed << setprecision(2) << B << endl;
        cout << scientific << noshowpos << uppercase << setprecision(9) << C << endl;
        
	}
	return 0;

}

 648 total views,  1 views today

Leave a Reply

Your email address will not be published. Required fields are marked *