Cho một ma trận vuông M [r] [c] trong đó 'r' là một số hàng và 'c' là các cột sao cho r =c, chúng ta phải kiểm tra xem 'M' có phải là ma trận tam giác trên hay không.
Ma trận tam giác trên
Ma trận tam giác phía trên là ma trận trong đó các phần tử phía trên đường chéo chính (bao gồm cả đường chéo chính) không phải là 0 và các phần tử bên dưới chỉ bằng 0.
Giống như trong Ví dụ cho sẵn bên dưới -
Trong hình trên, các phần tử được đánh dấu màu đỏ là các phần tử thấp hơn từ đường chéo chính là 0 và các phần tử còn lại khác 0.
Ví dụ
Input: m[3][3] = { {1, 2, 3},
{0, 5, 6},
{0, 0, 9}}
Output: yes
Input: m[3][3] == { {3, 0, 1},
{6, 2, 0},
{7, 5, 3} }
Output: no Thuật toán
Start
Step 1 -> define macro as #define size 4
Step 2 -> Declare function to check matrix is lower triangular matrix
bool check(int arr[size][size])
Loop For int i = 1 and i < size and i++
Loop For int j = 0 and j < i and j++
IF (arr[i][j] != 0)
return false
End
End
End
Return true
Step 3 -> In main()
Declare int arr[size][size] = { { 1, 1, 3, 2 },
{ 0, 3, 3, 2 },
{ 0, 0, 2, 1 },
{ 0, 0, 0, 1 } }
IF (check(arr))
Print its a lower triangular matrix
End
Else
Print its not a lower triangular matrix
End
Stop Ví dụ
#include <bits/stdc++.h>
#define size 4
using namespace std;
// check matrix is lower triangular matrix
bool check(int arr[size][size]){
for (int i = 1; i < size; i++)
for (int j = 0; j < i; j++)
if (arr[i][j] != 0)
return false;
return true;
}
int main(){
int arr[size][size] = { { 1, 1, 3, 2 },
{ 0, 3, 3, 2 },
{ 0, 0, 2, 1 },
{ 0, 0, 0, 1 } };
if (check(arr))
cout << "its a lower triangular matrix";
else
cout << "its not a lower triangular matrix";
return 0;
} Đầu ra
its a lower triangular matrix