题目来源L:牛客网
https://www.nowcoder.com/practice/f5a29bacfc514e5a935723857e1245e4
代码:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int m = 0;
int i = 0;
int j = 0;
int flag = 1;//YES
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &m);
if (i > 0 && m != 0 && j < i)
{
flag = 0;//NO
break;
}
}
if (!flag)
{
printf("NO\n");
break;
}
}
if (flag)
printf("YES\n");
return 0;
}
这里我没用使用数组对数据进行一个存储,因为我们仔细观察上三角矩阵的规律,就可以发现我们可以在输入要判断的数字之后,对该数字进行一个是否为0的判断,一旦为0我们就break退出,如果一直没出现0,那么flag的值就不会发生改变,那么上述输入的矩阵就是上三角矩阵
方法很简单,主要是判断的条件,大家要仔细观察上三角矩阵的特性才能发现