# Hackerrank - String Formatting Solution

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

- Decimal
- Octal
- Hexadecimal (capitalized)
- Binary

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

**Input Format**

A single integer denoting .

**Constraints**

- 1<=n<=99

**Output Format**

Print lines where each line (in the range ) contains the respective decimal, octal, capitalized hexadecimal, and binary values of . Each printed value must be formatted to the width of the binary value of .

**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 in Python

```
def print_formatted(n):o
binn = bin(n).replace("0b","")
for i in range(1,n+1):
deci = str(i)
deci = (len(binn)-len(deci))*" "+deci
octa = oct(i).replace("0o","")
octa = (len(binn)-len(octa))*" "+octa
hexi = hex(i).replace("0x","").upper()
hexi = (len(binn)-len(hexi))*" "+hexi
bina = bin(i).replace("0b","")
bina = (len(binn)-len(bina))*" "+bina
print(deci,octa,hexi,bina)
if __name__ == '__main__':
n = int(input())
print_formatted(n)
```