Instagram
youtube
Facebook
Twitter

Python String Formatting HackerRank Solution

Task

Given an integer, n, print the following values for each integer i from 1 to n:

  • Decimal 

  • Octal 

  • Hexadecimal (capitalized)

  • Binary

Function Description

Complete the print_formatted function in the editor below.

print_formatted has the following parameters:

int number: the maximum value to print

Prints

The four values must be printed on a single line in the order specified above for each i from 1 to number. Each value should be space-padded to match the width of the binary value of number and the values should be separated by a single space.

Input Format

A single integer denoting n.

Constraints

  • 1 <= n <= 99

Sample Input

17

Sample Output

    1     1     1     1
    2     2     2    10
    3     3     3    11
    4     4     4   100
    5     5     5   101
    6     6     6   110
    7     7     7   111
    8    10     8  1000
    9    11     9  1001
   10    12     A  1010
   11    13     B  1011
   12    14     C  1100
   13    15     D  1101
   14    16     E  1110
   15    17     F  1111
   16    20    10 10000
   17    21    11 10001

Solution:

def print_formatted(number):
    width = len(bin(number)[2:])
    for i in range(1, number+1):
        deci = str(i)
        octa = oct(i)[2:]
        hexa = hex(i)[2:].upper()
        bina = bin(i)[2:]
        print(deci.rjust(width),octa.rjust(width),hexa.rjust(width),bina.rjust(width))
    # your code goes here

if __name__ == '__main__':
    n = int(input())
    print_formatted(n)

Steps Used in solving the problem -

Step 1: First we created a function. This function will take a number as input.
Step 2: then, we created a variable.
Step 3: then, we created a loop in the range 1 to num+1.
Step 4: then, we changed our i in binary, octal, decimal, and hexadecimal.
Step 5: At last we printed our all variables.