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

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

前言


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

一、上三角矩阵


题目来源:

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不等,可以满足不同应用需求。闪存存储
2428 0
|
存储 Linux API
深入理解Linux虚拟内存管理(一)3
深入理解Linux虚拟内存管理(一)
394 1
|
机器学习/深度学习 自然语言处理 算法
【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述
事件抽取是从海量文本数据中快速获取事件信息的一项重要研究任务。随着深度学习的快速发展,基于深度学习技术的事件抽取已成为研究热点。文献中提出了许多方法、数据集和评估指标,这增加全面更新调研的需求。
961 0
|
人工智能 JSON API
HarmonyOS学习路之开发篇—AI功能开发(语音识别)
语音识别功能提供面向移动终端的语音识别能力。它基于华为智慧引擎(HUAWEI HiAI Engine)中的语音识别引擎,向开发者提供人工智能应用层API。该技术可以将语音文件、实时语音数据流转换为汉字序列,准确率达到90%以上(本地识别95%)。
|
存储 数据中心 Windows
GPT和MBR的区别
GPT和MBR的区别
741 1
GPT和MBR的区别
|
存储 程序员 C++
C/C++ 内存分配 new 操作符:剖析new操作符的实现机制和使用技巧
C/C++ 内存分配 new 操作符:剖析new操作符的实现机制和使用技巧
573 0
|
存储 程序员 Python
Python基础指南:表达式、语句和函数的基本概念及示例讲解
Python基础指南:表达式、语句和函数的基本概念及示例讲解
818 0
Python基础指南:表达式、语句和函数的基本概念及示例讲解
|
JavaScript C# 数据安全/隐私保护
C# 软件Licence应用实例
我们在使用一些需要购买版权的软件产品时,或者我们做的商业软件需要进行售卖,为了收取费用,一般需要一个软件使用许可证,然后输入这个许可到软件里就能够使用软件。简单的是一串序列码或者一个许可证文件,复杂的是一个定制化插件包。于是有的小伙伴就开始好奇这个许可是怎么实现的,特别是在离线情况下它是怎么给软件授权,同时又能避免被破解的。
696 0
|
Web App开发
Python+selenium 实现趣头条的短视频自动上传与发布实例演示(支持抖音、快手、b站、小红书等平台)
Python+selenium 实现趣头条的短视频自动上传与发布实例演示(支持抖音、快手、b站、小红书等平台)
687 0