Count the total number of triangles after Nth operation

• Difficulty Level : Basic
• Last Updated : 19 Apr, 2021

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 using namespace std;// function to return the// total no.of Trianglesint 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 codeint main(){    int n = 10;    cout << CountTriangles(n);    return 0;}

Java

 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 Trianglesdef 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 = 10print(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


Output:
118097

My Personal Notes arrow_drop_up