Cho ma trận vuông M[r][c] (r=c). Kiểm tra xem có phải ma trận tam giác trên (upper triangular) hay không. Ma trận tam giác trên: các phần tử trên đường chéo chính (kể cả đường chéo) khác 0, phần tử dưới đường chéo bằng 0.

Ví dụ
Input: {{1,2,3},{0,5,6},{0,0,9}} → Có
Input: {{3,0,1},{6,2,0},{7,5,3}} → Không
Thuật toán
BẮT ĐẦU
#define size 4
Hàm kiemTra(int a[size][size])
Với i=1..size-1
Với j=0..i-1
Nếu a[i][j] != 0 → trả về false
Trả về true
main()
a = {{1,1,3,2},{0,3,3,2},{0,0,2,1},{0,0,0,1}}
Nếu kiemTra(a) in "tam giác trên" ngược lại "không phải"
KẾT THÚC
Ví dụ mã C++
#include <bits/stdc++.h>
#define size 4
using namespace std;
bool kiemTra(int a[size][size]){
for (int i = 1; i < size; i++)
for (int j = 0; j < i; j++)
if (a[i][j] != 0)
return false;
return true;
}
int main(){
int a[size][size] = {{1,1,3,2},{0,3,3,2},{0,0,2,1},{0,0,0,1}};
if (kiemTra(a))
cout << "là ma trận tam giác trên";
else
cout << "không phải ma trận tam giác trên";
return 0;
}
Kết quả đầu ra
là ma trận tam giác trên