牛客网——判断上三角矩阵

简介: 牛客网——判断上三角矩阵

前言


今天和大家一起学习一下如何判断上三角矩阵。

一、上三角矩阵


题目来源:

KiKi判断上三角矩阵_牛客题霸_牛客网

描述


KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。

输入描述:


第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)

从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。

输出描述:


一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。

二、解题思路


1.错误代码(一开始看错,直接整了个矩阵给它)


代码如下(示例):

#include<stdio.h>
int main(){
    int n;
    int arr[10][10]={0};        //初始化
    scanf("%d",&n);
    int j=0,i=0,a=0,w;
    while(j<=n){                //设置循环条件
    for(i=j;i<n;i++){           //输入数组
            arr[j][i]=++a;
    }
        j++;                    //斜向下移动一位
    }
    for(int k=0;k<n;k++){        //输出,有输入的就输出数字,没有输入的数组在前面已经初始化为0
        for(int l=0;l<n;l++){
            printf("% d",arr[k][l]);
        }
        printf("\n");
    }
    return 0;
}

不过我个人认为里面也有一些方法值得大家学习学习。

2、正确代码


int main()
{
  int arr[10][10] = { 0 };
  int i = 0;
  int j = 0;
  int n = 0;
  scanf("%d", &n);
  int sum = 0;
  for (i = 0;i < n;i++)
  {
    for (j = 0;j < n;j++)
    {
      scanf("%d", &arr[i][j]);        //输入
      while (i > j)                //下三角部分
      {
        sum += arr[i][j];        //如果是上三角矩阵,下三角理应都为0
        break;
      }
    }
  }
  if (sum==0)                        //判断
  {
    printf("YES\n");
  }
  else
  {
    printf("NO\n");
  }
  return 0;
}

要注意判断循环的条件(i>j),这些循环的条件的判断对于我们去解循环数组,比如回型、蛇形(这几天会更)是很关键的,希望大家能仔细琢磨一下~

总结


以上就是今天要讲的内容,本文仅仅简单介绍了如何判断上三角矩阵,希望对大家有少少帮助~

相关文章
|
5月前
【每日一题Day146】给定行和列的和求可行矩阵 | 贪心
【每日一题Day146】给定行和列的和求可行矩阵 | 贪心
22 0
|
2月前
矩阵 螺旋矩阵
矩阵 螺旋矩阵
21 2
|
5月前
|
Java
【剑指offer】-顺时针打印矩阵-19/67
【剑指offer】-顺时针打印矩阵-19/67
|
11月前
剑指offer 28. 顺时针打印矩阵
剑指offer 28. 顺时针打印矩阵
38 0
|
12月前
判断上三角矩阵
判断上三角矩阵 (15 分)
95 0
|
Python
LeetCode 1572. 矩阵对角线元素的和
给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。
92 0
牛客网——矩阵相等判定
牛客网——矩阵相等判定
257 0
|
机器学习/深度学习
牛客网——回型矩阵
牛客网——回型矩阵
110 0