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