# Program to print Sum Triangle for a given array

Given a array, write a program to construct a triangle where last row contains elements of given array, every element of second last row contains sum of below two elements and so on.

Example:

```Input: arr[] = {4, 7, 3, 6, 7};
Output:
81
40 41
21 19 22
11 10 9 13
4 7 3 6 7

Input: {10, 40, 50}
Output:
140
50 90
10 40 50```

## Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

An important observation about output is final value is at the top and top element needs to printed first. Therefore, we use a 2D auxiliary array to construct the triangle in bottom up manner and then print the trianle. An element tri[i][j] of 2D array can be calculated as sum of tri[i+1][j] and tri[i+1][j+1].

Below is the implementation of above idea :

## C++

 `// C++ program to print sum triangle for a given array ` `#include ` `using` `namespace` `std; ` ` `  `// prints sum triangle for arr[0..n-1] ` `void` `printTriangle(``int` `arr[], ``int` `n) ` `{ ` `    ``// Initialize a 2D array to store triangle ` `    ``int` `tri[n][n]; ` `    ``memset``(tri, 0, ``sizeof``(tri)); ` ` `  `    ``// Initialize last row of triangle ` `    ``for` `(``int` `i = 0; i < n ; i++) ` `        ``tri[n-1][i] = arr[i]; ` ` `  `    ``// Fill other rows ` `    ``for` `(``int` `i = n-2; i >=0; i--) ` `      ``for` `(``int` `j = 0; j <= i; j++) ` `        ``tri[i][j] = tri[i+1][j] + tri[i+1][j+1]; ` ` `  `    ``// Print the triangle ` `    ``for` `(``int` `i = 0; i < n; i++) ` `    ``{ ` `        ``for``(``int` `j = 0; j <= i ; j++) ` `            ``cout << tri[i][j]<<``" "``; ` `        ``cout << endl; ` `    ``} ` `} ` ` `  `// Driver Program ` `int` `main() ` `{ ` `    ``int` `arr[] = {4, 7, 3, 6, 7}; ` `    ``int` `n = ``sizeof``(arr)/``sizeof``(arr); ` `    ``printTriangle(arr, n); ` `    ``return` `0; ` `} `

## Java

 `// Java program to print sum triangle for a given array ` `class` `Test{ ` `      `  `     ``static` `int` `arr[] = ``new` `int``[]{``4``, ``7``, ``3``, ``6``, ``7``}; ` `      `  `     ``// prints sum triangle for arr[0..n-1] ` `     ``public` `static` `void` `printTriangle(``int` `n) ` `     ``{ ` `        ``// Initialize a 2D array to store triangle ` `        ``int` `tri[][] = ``new` `int``[n][n]; ` `          `  `        ``// Initialize last row of triangle ` `        ``for` `(``int` `i = ``0``; i < n ; i++) ` `            ``tri[n-``1``][i] = arr[i]; ` `          `  `        ``// Fill other rows ` `        ``for` `(``int` `i = n-``2``; i >=``0``; i--) ` `            ``for` `(``int` `j = ``0``; j <= i; j++) ` `               ``tri[i][j] = tri[i+``1``][j] + tri[i+``1``][j+``1``]; ` `          `  `        ``// Print the triangle ` `        ``for` `(``int` `i = ``0``; i < n; i++) ` `        ``{ ` `            ``for``(``int` `j = ``0``; j <= i ; j++) ` `                ``System.out.print(tri[i][j] + ``" "``); ` `            ``System.out.println(); ` `        ``} ` `     ``} ` `      `  `     ``public` `static` `void` `main(String[] args)  ` `     ``{ ` `         ``printTriangle(arr.length); ` `        ``} ` ` ``} `

## Python3

 `# Python 3 program to print sum triangle ` `# for a given array ` ` `  `# prints sum triangle for arr[0..n-1] ` `def` `printTriangle(arr, n): ` `     `  `    ``# Initialize a 2D array to store triangle ` `    ``tri ``=` `[[``0` `for` `i ``in` `range``(n)]  ` `              ``for` `i ``in` `range``(n)] ` ` `  `    ``# Initialize last row of triangle ` `    ``for` `i ``in` `range``(n): ` `        ``tri[n ``-` `1``][i] ``=` `arr[i] ` ` `  `    ``# Fill other rows ` `    ``i ``=` `n ``-` `2` `    ``while``(i >``=` `0``): ` `        ``for` `j ``in` `range``(``0``, i ``+` `1``, ``1``): ` `            ``tri[i][j] ``=` `(tri[i ``+` `1``][j] ``+`  `                         ``tri[i ``+` `1``][j ``+` `1``]) ` `             `  `        ``i ``-``=` `1` ` `  `    ``# Print the triangle ` `    ``for` `i ``in` `range``(``0``, n, ``1``): ` `        ``for` `j ``in` `range``(``0``, i ``+` `1``, ``1``): ` `            ``print``(tri[i][j], end ``=` `" "``) ` `        ``print``(``"\n"``, end ``=` `"") ` ` `  `# Driver Code ` `if` `__name__ ``=``=` `'__main__'``: ` `    ``arr ``=` `[``4``, ``7``, ``3``, ``6``, ``7``] ` `    ``n ``=` `len``(arr) ` `    ``printTriangle(arr, n) ` `     `  `# This code is contributed by ` `# Shashank_Sharma `

## C#

 `// C# program to print sum triangle ` `// for a given array ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `[]arr = ``new` `int``[]{4, 7, 3, 6, 7}; ` `     `  `    ``// prints sum triangle for arr[0..n-1] ` `    ``public` `static` `void` `printTriangle(``int` `n) ` `    ``{ ` `        ``// Initialize a 2D array to store triangle ` `        ``int` `[,]tri = ``new` `int``[n, n]; ` `         `  `        ``// Initialize last row of triangle ` `        ``for` `(``int` `i = 0; i < n ; i++) ` `            ``tri[n - 1, i] = arr[i]; ` `         `  `        ``// Fill other rows ` `        ``for` `(``int` `i = n - 2; i >= 0; i--) ` `            ``for` `(``int` `j = 0; j <= i; j++) ` `            ``tri[i, j] = tri[i + 1, j] +  ` `                        ``tri[i + 1, j + 1]; ` `          `  `        ``// Print the triangle ` `        ``for` `(``int` `i = 0; i < n; i++) ` `        ``{ ` `            ``for``(``int` `j = 0; j <= i ; j++) ` `                ``Console.Write(tri[i, j] + ``" "``); ` `                ``Console.WriteLine(); ` `        ``} ` `    ``} ` `     `  `    ``// Driver Code ` `    ``public` `static` `void` `Main()  ` `    ``{ ` `        ``printTriangle(arr.Length); ` `    ``} ` `} ` ` `  `// This code is contributed by Sam007. `

## PHP

 `= 0; ``\$i``--) ` `    ``for` `(``\$j` `= 0; ``\$j` `<= ``\$i``; ``\$j``++) ` `        ``\$tri``[``\$i``][``\$j``] = ``\$tri``[``\$i` `+ 1][``\$j``] + ` `                       ``\$tri``[``\$i` `+ 1][``\$j` `+ 1]; ` ` `  `    ``// Print the triangle ` `    ``for` `(``\$i` `= 0; ``\$i` `< ``\$n``; ``\$i``++) ` `    ``{ ` `        ``for``( ``\$j` `= 0; ``\$j` `<= ``\$i` `; ``\$j``++) ` `            ``echo` `\$tri``[``\$i``][``\$j``] . ``" "``; ` `        ``echo` `"\n"``; ` `    ``} ` `} ` ` `  `// Driver Code ` `\$arr` `= ``array``(4, 7, 3, 6, 7); ` `\$n` `= ``count``(``\$arr``); ` `printTriangle(``\$arr``, ``\$n``); ` ` `  `// This code is contributed by Rajput-Ji ` `?> `

Output:

```81
40 41
21 19 22
11 10 9 13
4 7 3 6 7
```

Thanks to nish for suggesting this solution.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.