Java二维数组拓展练习

news2024/10/7 18:23:06

例 1 对角线输出:

已知一个n*n的矩阵(n<=20),把矩阵二条对角线上的元素值加上10,然后输出这两条新对角线上的所有元素之和。

注意当n为奇数时两条对角线交叉的那个元素改变时只需要改变一次,累加的时候需要累加两次

输入格式

第一行为一个整数n(n<=20)

第二行开始为一个n*n个整数组成的矩阵,整数范围(1-1000)

输出格式

输出一个整数,为矩阵两条新对角线上的元素之和

输入样例:

6
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6
 

输出样例:

162

示例1:图为N = 6的矩阵,将两条对角线上的元素输出1,其余位置输出0

 

提示:使用二维数组存储矩阵元素,问题的核心是找出两条对角线所包含元素位置的规律。

分析:

① 右斜线(\):行=列,都从1到6(N)

 

a[1][1]
a[2][2]
...
a[6][6]

② 左斜线(/):行+列 = 7(N+1)

a[1][6]
a[2][5]
...
a[6][1]

代码详情:

const int N=25;//将N设置成固定不变的常量
int n,ans,a[N][N];
int main()
{
  cin>>n;
  for(int i=1; i<=n; i++)
  {
    for(int j=1; j<=n; j++)
    {
      cin>>a[i][j];
    }
  }
  for(int i=1; i<=n; i++)
  {
    ans+=a[i][i];       //累加右对角线元素
    ans+=a[i][n+1-i];   //累加左对角线元素
  }
  ans+=2*n*10;          //总共2n个元素,每个元素都+10
  return 0;
}

示例2:杨辉三角

杨辉三角是一个由数字排列成的三角形表,一般形式如下:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

(第一列和每行最后一列都为1,其余数字为它的左上方和正上方数字之和)

输入一个正整数n(n≤20),表示三角形的行数,输出杨辉三角的第n行。

输入格式

输入一个整数n(n≤20)

输出格式

输出杨辉三角的第n行

输入样例:

6

输出样例:

1 5 10 10 5 1

 

杨辉三角具有以下特性:(关注黄色标注部分)

① 第1列元素的值全为1。

② 第i行拥有i个元素,即:第i行有i列。

③ 元素(i, j)通过元素(i-1, j-1)和(i-1, j)累加获得,即:a[i][j] = a[i-1][j-1] + a[i-1][j]。

④ 如果第0列元素全为0,那么第1列元素也满足特性③。

解题步骤:

① 定义二维数组a[N][N]存储杨辉三角,并初始化第0列为0(全局变量),a[1][1] = 1;

② 双层 for 循环,第 1 层for循环枚举行 i(2到N),第2层for循环枚举列 j(1到i);

③ 利用公式:a[i][j] = a[i-1][j-1] + a[i-1][j],计算a[i][j]的值。

④ 输出第N行的第1列到第N列。

const int N=101;
int n,a[N][N];
int main()
{
        cin>>n;
        a[1][1]=1;//第一行第一列:1
        for(int i=2; i<=n; i++)
        {
                for(int j=1; j<=i; j++)//行与列相等
    {
      a[i][j]=a[i-1][j-1]+a[i-1][j];
    }
  }
  for(int j=1; j<=n; j++)
  {
    cout<<a[n][j]<<" ";
  }
  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

46.for循环嵌套之九九乘法表

46.for循环嵌套之九九乘法表 文章目录46.for循环嵌套之九九乘法表1. 目标任务2. 完成第1行输出2. 分析前3行规律3. 编写第1行代码4. 编写前2行代码5. 调整输出格式6. 完成总代码1. 目标任务 本节的任务是利用for循环嵌套编写九九乘法表。 1*11 1*22 2*24 1*33 2*36 3*39 1…

语音识别之语音激活(VAD)检测(一)

导读 语音激活检测(Vioce Activation Detection)简称VAD&#xff0c;用来检测语音信号是否存在。VAD技术在语音领域中应用非常的广泛&#xff0c;在语音识别中我们可以对长语音通过VAD来检测出语音信号的空隙&#xff0c;通过这个空隙来分割语音&#xff0c;将长语音切分成短语…

正大国际期货:如何摆脱炒黄金期货被套单?

投资失败无非两点&#xff1a;一是自身原因&#xff0c;自己没有经验&#xff0c;盲目的操作肯定会造成亏损&#xff1b;二是指导老师的实力问题&#xff0c;指导老师对行情的方向把握不准&#xff0c;经常喊反弹&#xff0c;造成你的亏损。想要走得快&#xff0c;就独自上路&a…

Python每日一练 09——多文件操作

Python每日一练 09——多文件操作 文章目录Python每日一练 09——多文件操作一、单文件拆分为多个文件二、多文件合并为单文件1、获取数据文件名2、获取股票名列表3、读单支股票数据4、读多支股票数据5、多文件中数据合并到一个文件一、单文件拆分为多个文件 我们写一个txt文件…

数字图像处理(入门篇)九 图像数据预处理之滤波

目录 1 模板运算 &#xff08;1&#xff09;模板卷积 &#xff08;2&#xff09;模板排序 2 均值滤波 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;结果图 3 高斯滤波 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;结果图 4 中值滤波 &#…

IB数学HL/SL考试大纲简单介绍

IB数学难度怎么样&#xff1f;IB数学内部评估和外部评估是怎么评分的&#xff0c;IB数学HL和SL的考试大纲&#xff1f; 下面介绍IB数学框架体系IB数学SL考试大纲 SL数学为必修课 考试内容相对比较基础 代数&#xff08;Algebra&#xff09;&#xff1a;涉及数列问题&#xff…

CentOS虚拟机搭建Hive环境

注&#xff1a;本文是对 https://www.bilibili.com/video/BV1CU4y1N7Sh 的实践。 关于如何搭建Hadoop集群&#xff0c;请参考我另一篇文档。 环境 CentOS 7.7JDK 8Hadoop 3.3.0Hive 3.1.2 准备 确认Hadoop的 etc/hadoop/core-site.xml 文件包含如下配置&#xff1a; <…

3D建模师做多了女人会不会找不到老婆?次世代美少女战士建模流程讲解

什么是次世代&#xff1f; 次世代是个舶来语&#xff0c;“次世代游戏”指代和同类游戏相比下更加先进的游戏&#xff0c;即“下一代游戏”。 次世代是利用高模烘焙的法线贴图回帖到低模上&#xff0c;让低模在游戏引擎里可以及时显示高模的视觉效果。模型面数比较高&#xf…

Python实现PSO粒子群优化卷积神经网络CNN回归模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 PSO是粒子群优化算法&#xff08;Particle Swarm Optimization&#xff09;的英文缩写&#xff0c;是一…

学完这篇,再不怕防火墙NAT策略问题

Q&A 1、配置了nat server后Tracert防火墙上的global地址&#xff0c;显示信息是什么? 无论具有Inside地址的设备在防火墙内部有多少跳&#xff0c;Tracert时全部显示nat server的global的地址。如果有3跳&#xff0c;则显示3次global地址。 2、nat server和destination-n…

艾美捷CMRL-1066培养基背景和化学性质分析

艾美捷CMRL-1066培养基背景&#xff1a; CMRL-1066是20世纪60年代后期在康诺医学研究实验室开发的一种化学定义的培养基。CMRL-1066最初设计用于非补充培养物中的小鼠L细胞。虽然CMRL-1066是为无血清培养而开发的&#xff0c;但它可以补充血清并用于支持多种细胞类型的生长。适…

[激光原理与应用-50]:《激光焊接质量实时监测系统研究》-1-绪论 (模式识别)

目录 1.1 问题概述 1.2 激光焊接质量监测在国内外的研究现状 1.2.1 国内外研究概况、水平和发展趋势 1.2.2 信号检测与传感器 1.2.3 信号分析与缺陷诊断 &#xff08;DSP或FPGA&#xff09; 1.3 本课题研究内容及意义 后记&#xff1a; 1.1 问题概述 激光焊接是一种高效…

YOLO v3

参考 YOLO v3 - 云社区 - 腾讯云 摘要 我们对YOLO进行了一些更新&#xff01;我们做了一些小的设计改变使它更好。我们还训练了这个非常棒的新网络。比上次大一点&#xff0c;但更准确。不过还是很快的&#xff0c;别担心。在320 320的情况下&#xff0c;YOLOv3在28.2 mAP下…

跳板攻击中如何追踪定位攻击者主机(上)

前段时间西北工业大学遭受NAS攻击事件中&#xff0c;TAO在针对西北工业大学的网络攻击行动中先后使用了54台跳板机和代理服务器&#xff0c;主要分布在日本、韩国、瑞典、波兰、乌克兰等17个国家&#xff0c;其中70%位于中国周边国家&#xff0c;如日本、韩国等。 同时&#x…

芯片漫游指南(3)-- UVM通信

目录1.TLM通信1.1 概述1.2 基本概念1.3 分类1.4 端口的使用2. 单向通信2.1 概念2.2 方法2.3 示例3.双向通信3.1 概述3.2 分类3.3 transport4. 多向通信4.1 概述4.2 示例5.通信管道5.1 概述5.2 TLM FIFO5.3 Analysis Port5.4 analysis TLM FIFO5.5 request & response通信管…

[附源码]JAVA毕业设计疫情防控期间人员档案追演示录像下(系统+LW)

[附源码]JAVA毕业设计疫情防控期间人员档案追演示录像下&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#x…

Springboot内置的工具类之ObjectUtils

在实际业务开发中&#xff0c;有时候经常需要判断对象是否为空、数组是否为空、两个对象是否相等&#xff0c;数组中是否包含某个元素&#xff0c;往数组中追加元素等这些操作&#xff0c;每次都手写太麻烦&#xff0c;然后很多人的选择是封装成util工具类&#xff0c;实际上类…

Golang protobuf

文章目录protobuf 和 grpc 的区别下载工具 protoc为什么要使用 protocprotoc 基本语法基础用法结构体声明protoc生成结构体服务声明生成服务使用生成的服务端使用生成的客户端protobuf 和 grpc 的区别 grpc 是开源的rpc框架 protobuf是编码协议下载工具 protoc https://githu…

人工神经网络/ANN简介

目录 前言 1.什么是训练集、测试集和验证集&#xff1f; 2.人工神经网络和 生物神经元结构对应的理解 3.什么是梯度下降法&#xff0c;在神经网络上如何用于调节权重&#xff1f; 4.为什么神经网络要进行归一化处理&#xff1f; 5.激活函数的形式&#xff1a; 6.NN分类 …

序列模型(自回归模型,马尔可夫模型,因果关系)

李沐老师《动手学深度学习 PyTorch版》课程&#xff0c;小破站也有视频51 序列模型【动手学深度学习v2】_哔哩哔哩_bilibili 主要参考8.1. 序列模型 — 动手学深度学习 2.0.0 documentation 目录 1.基本原理 1.1自回归模型 1.2马尔可夫模型 1.3因果关系 2.训练 3.预测 4…