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

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

前言


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

一、上三角矩阵


题目来源:

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

总结


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

相关文章
|
机器学习/深度学习 人工智能 达摩院
AIGC玩转卡通化技术实践
伴随着持续不断的AIGC浪潮,越来越多的AI生成玩法正在被广大爱好者定义和提出,图像卡通化(动漫化)基于其还原效果高,风格种类丰富等特点而备受青睐。早在几年前,伴随着GAN网络的兴起,卡通化就曾经风靡一时。而今,伴随着AIGC技术的兴起和不断发展,扩散生成模型为卡通化风格和提供了更多的创意和生成的可能性。本文就将详细介绍达摩院开放视觉团队的卡通化技术实践。
|
存储 数据采集 编译器
STC8系列单片机介绍
STC8系列单片机是中国STC公司生产的一款8位单片机系列产品。作为STC公司的主打产品之一,STC8系列单片机以其高性价比、丰富的外设资源和强大的功能而备受青睐。本文将详细介绍STC8系列单片机的特点、应用领域、开发工具和资源支持等方面。 一、STC8系列单片机的特点 1. 强大的8051内核:STC8系列单片机采用了高性能的8051内核,具有快速的指令执行速度和高效的运算能力。8051内核被广泛应用于嵌入式系统中,具有稳定可靠的特点。 2. 大容量闪存存储器:STC8系列单片机内置大容量的闪存存储器,可存储程序代码和数据。闪存容量从4KB到128KB不等,可以满足不同应用需求。闪存存储
2268 0
|
存储 Linux API
深入理解Linux虚拟内存管理(一)3
深入理解Linux虚拟内存管理(一)
311 1
|
运维 Devops Java
DevOps 工具链:从代码到生产
【8月更文第30天】在现代软件开发中,DevOps(Development 和 Operations 的结合)已成为确保快速而可靠的软件交付的关键方法。DevOps 通过自动化流程将软件开发与 IT 运维相结合,从而实现持续集成 (CI) 和持续部署 (CD)。本文将介绍一个典型的 DevOps 工具链,并提供实际的代码示例来帮助您理解如何将这些工具集成在一起。
553 5
|
Java 测试技术 索引
ThreadLocal详解
文章详细讨论了Java中的`ThreadLocal`,包括它的基本使用、定义、内部数据结构`ThreadLocalMap`、主要方法(set、get、remove)的源码解析,以及内存泄漏问题和避免策略。`ThreadLocal`提供了线程局部变量,确保多线程环境下各线程变量的独立性,但不当使用可能导致内存泄漏,因此建议在不再需要`ThreadLocal`变量时调用其`remove`方法。
229 2
ThreadLocal详解
|
开发者 Python
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
437 1
|
机器学习/深度学习 自然语言处理 算法
【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述
事件抽取是从海量文本数据中快速获取事件信息的一项重要研究任务。随着深度学习的快速发展,基于深度学习技术的事件抽取已成为研究热点。文献中提出了许多方法、数据集和评估指标,这增加全面更新调研的需求。
861 0
|
虚拟化
VMware Workstation 16 Pro安装教程
VMware Workstation 16 Pro安装教程
422 1
|
弹性计算 安全 数据库
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
319 7
|
数据库
JSP+Servlet+JavaBean模式+实现登录注册
JSP+Servlet+JavaBean模式+实现登录注册
JSP+Servlet+JavaBean模式+实现登录注册