首页 > 试题广场 >

上三角矩阵判定

[编程题]上三角矩阵判定
  • 热度指数:37455 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛想知道一个 n 阶方阵是否为上三角矩阵。所谓上三角矩阵,是指矩阵中主对角线以下的元素都为 0,其中主对角线是从矩阵左上角到右下角的连线。
\hspace{15pt}请你判断给定的方阵是否满足这一性质。

输入描述:
\hspace{15pt}在一行中输入一个整数 n \left(1 \leqq n \leqq 10\right)
\hspace{15pt}接下来 n 行,每行输入 n 个整数 a_{i,1},a_{i,2},\dots,a_{i,n} \left(-10^{9} \leqq a_{i,j} \leqq 10^9\right),用空格分隔。


输出描述:
\hspace{15pt}如果输入的方阵是上三角矩阵,则输出 \texttt{ (不含双引号)并换行;否则输出 \texttt{ (不含双引号)并换行。
示例1

输入

3
1 2 3
0 4 5
0 0 6

输出

YES

说明

该矩阵主对角线以下元素均为 0,因此是上三角矩阵。
示例2

输入

3
1 0 0
0 2 0
1 0 3

输出

NO

说明

该矩阵在第 3 行第 1 列元素为 1 \neq 0,故不是上三角矩阵。
number = int(input())
matrix = []
for _ in range(number):
    numbers = list(map(int, input().split()))
    matrix.append(numbers)
def function(matrix):
    for index, values in enumerate(matrix):
        if index >= 1:
            if values[:index] != [0] * index:
                return False
    return True
if function(matrix):
    print("YES")
else:
    print("NO")

发表于 2026-04-01 21:17:43 回复(0)
n = int(input())
t =[]
for _ in range(n):
    a = list(map(int,input().split()))
    t.append(a)
for i in range(n):
    for j in range(i):
        if int(t[i][j]) != 0:
            print("NO")
            exit()
print("YES")

发表于 2025-11-12 12:48:11 回复(0)
n = int(input())
cnt = 0
for i in range(n):
    a = list(map(int, input().split()))
    for j in range(int(i)):
        if a[j] == 0:
            cnt += 1
        else:
            continue
if cnt == (n ** 2 -n)/2:
    print("YES")
else:
    print("NO")


发表于 2025-10-02 20:35:14 回复(0)
n = int(input())
输出 = "YES"  # 假设下三角全为0
for i in range(n):
    a = list(map(int, input().split()))
    for j in range(i):  # 检查下三角部分
        if a[j] != 0:
            输出 = "NO"  
print(输出)  
发表于 2025-09-26 15:30:34 回复(0)
n = int(input())
a='YES'
for i in range(n):
    l = map(int ,input().split())
    while i > 0 :
        if next(l) == 0 :
            i -= 1

        else:
            a="NO"
            break
print(a)
发表于 2025-07-21 17:29:30 回复(0)
n = int(input())
is_yes = True

for i in range(n):
    an = list(map(int, input().split()))
    for j in range (i):
        if an[j] != 0:
            is_yes = False

if is_yes == False:
    print("NO")
else:
    print("YES")

发表于 2025-07-16 04:30:30 回复(0)
n=int(input())
for i in range(n):
    a=list(map(int,input().split()))
    for j in range(i):
        if a[j]!=0:
             print("NO")
             exit()
print('YES')
发表于 2025-07-10 10:36:52 回复(0)
n = int(input())
for i in range(n):
    a = list(map(int, input().split()))
    if a.count(0) != i:
        for _ in range(i + 1, n):
            input()
        print('NO')
        exit()

print('YES')

发表于 2025-07-07 15:49:29 回复(0)
n=int(input())
a1=[]
for __ in range(n):
    a=list(map(int,input().split()))
    a1.append(a)
c=0
for i in range(n):
    for j in range(i):
        if a1[i][j]!=0:
            c+=1      
if c==0:
    print("YES")
else:
    print('NO')
发表于 2025-06-25 11:48:14 回复(0)
n = int(input())
m = []
for i in range(n):
    li = list(map(int, input().split()))
    m.append(li)
flag = True
for i in range(1, n):
    for j in range(i):
        if m[i][j] !=0:
           flag = False
print("YES" if flag else "NO")

发表于 2021-08-27 15:15:36 回复(0)