Open In App

Print Lower Hessenberg matrix of order N

Improve
Improve
Like Article
Like
Save
Share
Report

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

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

 

Approach: For printing a Lower Hessenberg matrix with one-digit positive elements print zero for all cells of the matrix where j > i + 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 <bits/stdc++.h>
using namespace std;
 
// Function to print the Lower Hessenberg
// matrix of order n
void LowerHessenbergMatrix(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 (j > i + 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;
    LowerHessenbergMatrix(n);
 
    return 0;
}


Java




// Java implementation of the approach
class GFG
{
 
// Function to print the Lower Hessenberg
// matrix of order n
static void LowerHessenbergMatrix(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 (j > i + 1)
                System.out.print('0' + " ");
 
            // Print a random digit for
            // every non-zero element
            else
            {
                System.out.printf("%.0f",Math.random() * 10);
                System.out.print(" ");
            }
        }
        System.out.println("\n");
    }
}
 
// Driver code
public static void main(String[] args)
{
    int n = 4;
    LowerHessenbergMatrix(n);
}
}
 
/* This code is contributed by PrinciRaj1992 */


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 (j > i + 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 LowerHessenbergMatrix(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 (j > i + 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;
        LowerHessenbergMatrix(n);
    }
}   
 
// This code is contributed by AnkitRai01


Javascript




<script>
 
 
// Javascript implementation of the approach
 
// Function to print the Lower Hessenberg
// matrix of order n
function LowerHessenbergMatrix(n)
{
    for (var i = 1; i <= n; i++) {
        for (var j = 1; j <= n; j++) {
 
            // If element is above super-diagonal
            // then print 0
            if (j > i + 1)
                document.write( '0' + " ");
 
            // Print a random digit for
            // every non-zero element
            else
                document.write(Math.floor(Math.random() * 10) + " ");
        }
        document.write( "<br>");
    }
}
 
// Driver code
var n = 4;
LowerHessenbergMatrix(n);
 
 
</script>


Output: 

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

 

Time Complexity: O(n2)

Auxiliary Space: O(1)



Last Updated : 31 May, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads