Sort by

recency

|

2020 Discussions

|

  • + 0 comments

    My Python Solution:

    def utopianTree(n):
        # Write your code here
        if n == 0:
            return 1
    
        doubleCycle = n if n % 2 else n - 1
        treeLength = sum(2** (i+1) for i in range((doubleCycle//2)+1))
        
        return treeLength if n % 2 else treeLength + 1
    
  • + 0 comments

    C# Easy to Understand Solution

        public static int utopianTree(int n)
        {
            if (n == 0) return 1;
            int start = 1;
            for (int i = 1; i <= n; i++) {
                if (i % 2 == 0) start += 1;
                else start *= 2;
            }
            return start;
        }
    

    First of all, since the tree sapling starts at 1 height, then if "n" is 0 (no growth), then its height stays at 1.

    Then since it's always starts at Spring, then Summer, then Spring again, etc. We can think of it like an index. You might notice that each Spring happens at odd index, while each Summer happens at even index. This means you can just check if the index is odd or even. If it's an odd index (Spring), multiply the height by 2. If it's an even index (Summer), increment the height by 1.

  • + 0 comments

    Cleanest and Fastest soluion you will ever find here!!

    include

    using namespace std;

    int main(){ //odd -> (2 ^ (n / 2) + 2) - 2 //even -> (2 ^ (n / 2) + 1) - 1

    int t;
    cin >> t;
    
    while(t--){
        int n;
        cin >> n;
    
        if(n % 2){ //odd 
            cout << (1 << (n / 2 + 2)) - 2 << '\n';
        }
        else{ //even
            cout << (1 << (n / 2 + 1)) - 1 << '\n';
        }
    }
    
    return 0;
    

    }

  • + 0 comments

    Here is problem solution in PYthon, Java, C++, C and Javascript - https://programmingoneonone.com/hackerrank-utopian-tree-problem-solution.html

  • + 0 comments

    here is my solution in javascript:

    function utopian(n){
    let height = 1;
    	for(let i = 0; i < n; i++){
    		if(i % 2 === 0){
    			height *= 2;
    		} else {
    			height += 1;
    		}
    	}
    
    return height;
    

    }