• + 1 comment

    Very cool. Here's my non-recursive JavaScript solution:

    const halfRoundedDown = (num) => Math.floor(num / 2);
    
    function viralAdvertising(n) {
        let totalLikes = 2;
        let lastLikes = 2;
        while (n > 1) {
            lastLikes = halfRoundedDown(lastLikes * 3);
            totalLikes += lastLikes;
            n--;
        }
        return totalLikes;
    }