Utopian Tree | Hackerrank Solution

The Utopian Tree goes through 2 cycles of growth every year. Each spring, it doubles in height. Each summer, its height increases by 1 meter.

A Utopian Tree sapling with a height of 1 meter is planted at the onset of spring. How tall will the tree be after  growth cycles?

For example, if the number of growth cycles is n=5, the calculations are as follows:

Period  Height
0          1
1          2
2          3
3          6
4          7
5          14

Function Description

Complete the utopianTree function in the editor below.

utopianTree has the following parameter(s):

  • int n: the number of growth cycles to simulate

Returns

  • int: the height of the tree after the given number of cycles

Input Format

The first line contains an integer,t , the number of test cases.
 subsequent lines each contain an integer, n, the number of cycles for that test case.

Constraints

  • 1<=t<=10
  • 0<=n<=60

Sample Input

3
0
1
4

Sample Output

1
2
7

Explanation

There are 3 test cases.

In the first case (n=5), the initial height (H=1) of the tree remains unchanged.

In the second case (n=1), the tree doubles in height and is 2 meters tall after the spring cycle.

In the third case (n=4), the tree doubles its height in spring (n=1,H=2 ), then grows a meter in summer (n=2, H=3), then doubles after the next spring (n=3,H=6 ), and grows another meter after summer (n=4,H=7 ). Thus, at the end of 4 cycles, its height is 7 meters.

#!/bin/python3
import math
import os
import random
import re
import sys
#
# Complete the 'utopianTree' function below.
#
# The function is expected to return an INTEGER.
# The function accepts INTEGER n as parameter.
#
def utopianTree(n):
    # Write your code here
    height = 1
    for i in range(1, n + 1):
        if i % 2 == 1:
            height *= 2
        else:
            height += 1
    return height
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')
    t = int(input().strip())
    for t_itr in range(t):
        n = int(input().strip())
        result = utopianTree(n)
        fptr.write(str(result) + '\n')
    fptr.close()

Leave a Reply

Discover more from Geeky Codes

Subscribe now to keep reading and get access to the full archive.

Continue reading