Open In App

Count the total number of triangles after Nth operation

Last Updated : 07 Dec, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given an equilateral triangle, the task is to compute the total number of triangles after performing the following operation N times. 
For every operation, the uncolored triangles are taken and divided into 4 equal equilateral triangles. Every inverted triangle formed is colored. Refer to the below figure for more details.

For N=1 the triangle formed is:

For N=2 the triangle formed is:
 

Examples: 

Input :N = 10 
Output : 118097

Input : N = 2 
Output : 17 

Approach: 

  • At every operation, 3 uncolored triangles, 1 colored triangle, and the triangle itself is formed
  • On writing the above statement mathematically; count of triangles at Nth move = 3 * count of triangles at (N-1)th move + 2
  • Therefore, initializing a variable curr = 1 and tri_count = 0
  • Next, a loop is iterated from 1 to N
  • For every iteration, the operation mentioned above is performed.
  • Finally, the tri_count is returned

Below is the implementation of the above approach: 

C++




#include <bits/stdc++.h>
using namespace std;
// function to return the
// total no.of Triangles
int CountTriangles(int n)
{
    int curr = 1;
    int Tri_count = 0;
    for (int i = 1; i <= n; i++) {
        // For every subtriangle formed
        // there are possibilities of
        // generating (curr*3)+2
 
        Tri_count = (curr * 3) + 2;
        // Changing the curr value to Tri_count
        curr = Tri_count;
    }
    return Tri_count;
}
 
// driver code
int main()
{
    int n = 10;
    cout << CountTriangles(n);
    return 0;
}


Java




import java.io.*;
 
public class Gfg {
    // Method to return the
    // total no.of Triangles
    public static int CountTriangles(int n)
    {
        int curr = 1;
        int Tri_count = 0;
        for (int i = 1; i <= n; i++) {
            // For every subtriangle formed
            // there are possibilities of
            // generating (curr*3)+2
 
            Tri_count = (curr * 3) + 2;
            // Changing the curr value to Tri_count
            curr = Tri_count;
        }
        return Tri_count;
    }
 
    // driver code
    public static void main(String[] args)
    {
        int n = 10;
        System.out.println(CountTriangles(n));
    }
}


Python




# Function to return the
# total no.of Triangles
def countTriangles(n):
     
    curr = 1
    Tri_count = 0
    for i in range(1, n + 1):
             
        # For every subtriangle formed
        # there are possibilities of
        # generating (curr * 3)+2
        Tri_count = (curr * 3) + 2
        # Changing the curr value to Tri_count
        curr = Tri_count
    return Tri_count
     
n = 10
print(countTriangles(n))


C#




using System;
 
class Gfg
{
    // Method to return the
    // total no.of Triangles
    public static int CountTriangles(int n)
    {
        int curr = 1;
        int Tri_count = 0;
        for (int i = 1; i <= n; i++)
        {
            // For every subtriangle formed
            // there are possibilities of
            // generating (curr*3)+2
            Tri_count = (curr * 3) + 2;
             
            // Changing the curr value to Tri_count
            curr = Tri_count;
        }
        return Tri_count;
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        int n = 10;
        Console.WriteLine(CountTriangles(n));
    }
}
 
// This code is contributed by 29AjayKumar


Javascript




<script>
    // Method to return the
    // total no.of Triangles
    function CountTriangles(n)
    {
        var curr = 1;
        var Tri_count = 0;
        for (i = 1; i <= n; i++)
        {
         
            // For every subtriangle formed
            // there are possibilities of
            // generating (curr*3)+2
 
            Tri_count = (curr * 3) + 2;
            // Changing the curr value to Tri_count
            curr = Tri_count;
        }
        return Tri_count;
    }
 
    // driver code
        var n = 10;
        document.write(CountTriangles(n));
 
// This code is contributed by aashish1995
</script>


Output: 

118097

 

Time Complexity: O(n)
Auxiliary Space: O(1)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads