# Print Upper Hessenberg matrix of order N

Last Updated : 31 May, 2022

Given a positive integer N, the task is to print the Upper Hessenberg matrix of order N which includes any one-digit random positive integer as its non-zero elements.
Upper Hessenberg matrix is a square matrix in which all of its elements below the sub-diagonal are zero. In mathematical term mat[i][j] = 0 for all i > j + 1.
Examples:

Input: N = 3
Output:
1 2 8
1 3 4
0 3 4
Input: N = 4
Output:
1 2 2 3
1 3 4 2
0 3 4 2
0 0 1 4

Approach: For printing an upper Hessenberg matrix with one-digit positive elements print zero for all the cells of the matrix where i > j + 1 and any single-digit random number with help of rand() function.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include ` `using` `namespace` `std;`   `// Function to print the Upper Hessenberg` `// matrix of order n` `void` `UpperHessenbergMatrix(``int` `n)` `{` `    ``for` `(``int` `i = 1; i <= n; i++) {` `        ``for` `(``int` `j = 1; j <= n; j++) {`   `            ``// If element is below sub-diagonal` `            ``// then print 0` `            ``if` `(i > j + 1)` `                ``cout << ``'0'` `<< ``" "``;`   `            ``// Print a random digit for` `            ``// every non-zero element` `            ``else` `                ``cout << ``rand``() % 10 << ``" "``;` `        ``}` `        ``cout << ``"\n"``;` `    ``}` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 4;` `    ``UpperHessenbergMatrix(n);`   `    ``return` `0;` `}`

## Java

 `// Java implementation of the approach` `class` `GFG ` `{`   `// Function to print the Lower Hessenberg ` `// matrix of order n ` `static` `void` `UpperHessenbergMatrix(``int` `n) ` `{` `    ``for` `(``int` `i = ``1``; i <= n; i++) ` `    ``{` `        ``for` `(``int` `j = ``1``; j <= n; j++) ` `        ``{`   `            ``// If element is above super-diagonal ` `            ``// then print 0 ` `            ``if` `(i > j + ``1``) ` `            ``{` `                ``System.out.print(``0` `+ ``" "``);` `            ``} ` `            `  `            ``// Print a random digit for ` `            ``// every non-zero element ` `            ``else` `            ``{` `                ``System.out.print((``int``)(Math.random() * ``10``) + ``" "``);` `            ``}` `        ``}` `        ``System.out.println();` `    ``}` `}`   `// Driver code ` `public` `static` `void` `main(String[] args) ` `{` `    ``int` `n = ``4``;` `    ``UpperHessenbergMatrix(n);` `}` `}`   `// This code is contributed by 29AjayKumar`

## Python3

 `# Python3 implementation of the approach` `import` `random`   `# Function to print the Upper Hessenberg` `# matrix of order n` `def` `UpperHessenbergMatrix(n):`   `    ``for` `i ``in` `range``(``1``, n ``+` `1``):`   `        ``for` `j ``in` `range``(``1``, n ``+` `1``):`   `            ``# If element is below sub-diagonal` `            ``# then pr0` `            ``if` `(i > j ``+` `1``):` `                ``print``(``'0'``, end ``=` `" "``)`   `            ``# Pra random digit for` `            ``# every non-zero element` `            ``else``:` `                ``print``(random.randint(``1``, ``10``), ` `                                 ``end ``=` `" "``)` `        ``print``()`   `# Driver code` `n ``=` `4``;` `UpperHessenbergMatrix(n)`   `# This code is contributed ` `# by Mohit Kumar`

## C#

 `// C# implementation of the approach ` `using` `System;`   `class` `GFG` `{` `    `  `    ``// Function to print the Lower Hessenberg ` `    ``// matrix of order n ` `    ``static` `void` `UpperHessenbergMatrix(``int` `n) ` `    ``{ ` `        ``Random rand = ``new` `Random();` `        `  `        ``for` `(``int` `i = 1; i <= n; i++) ` `        ``{ ` `            ``for` `(``int` `j = 1; j <= n; j++)` `            ``{ ` `    `  `                ``// If element is above super-diagonal ` `                ``// then print 0 ` `                ``if` `(i > j + 1) ` `                    ``Console.Write(0 + ``" "``); ` `    `  `                ``// Print a random digit for ` `                ``// every non-zero element ` `                ``else` `                    ``Console.Write(rand.Next(1, 10) + ``" "``); ` `            ``} ` `            ``Console.WriteLine(); ` `        ``} ` `    ``} ` `    `  `    ``// Driver code ` `    ``static` `public` `void` `Main ()` `    ``{` `        ``int` `n = 4; ` `        ``UpperHessenbergMatrix(n); ` `    ``}` `}    ` `    `  `// This code is contributed by AnkitRai01`

## Javascript

 ``

Output:

```3 6 7 5
3 5 6 2
0 9 1 2
0 0 7 0```

Time Complexity: O(n2)

Auxiliary Space: O(1)

Previous
Next