华为机试HJ35:蛇形矩阵
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
题目描述:
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
例如,当输入5时,应该输出的三角形为:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
请注意本题含有多组样例输入。
输入描述:
输入正整数N(N不大于100)
输出描述:
输出一个N行的蛇形矩阵。
示例:
输入:
4
输出:
1 3 6 10
2 5 9
4 8
7
解题思路:
方案有两个。
方案一:输入矩阵行数,创建二维数组;再遍历行数,每走到某行后,都向其右上方继续行进,在此期间用start来控制当前行进位置的数值;最后遍历二维数组,若值为0则不输出,即可完成。
方案二:找蛇形矩阵的数学关系。先看最外围的关系,第一行最后值为等差数列的和,即(N*N+N)/2,其中N为输入的行数row,每行的最后一个值都是和再减去当前行数再加一;再看其他位置的关系,第一行倒数第二个值的N变为了row-1,即row-1的等差数列和,第二行倒数第二个值是和再减去当前行数再加一,那么可以用i+j-1来等同于row-1,比如第一行第三列的i+j-1为3,第二行第二列的i+j-1依然为3,区别在于第二行第二列的数值是长度为3的等差数列和再减行数(2)再加一;以此类推,完成。
测试代码:
方案一:
#include <iostream>
using namespace std;int main()
{int row;while(cin>>row){int **a=new int*[row];for(int i=0;i<row;++i){a[i]=new int[row];}int start=1;for(int i=0;i<row;++i){int k=i;for(int j=0;j<=i;++j){a[k][j]=start;start++;k--;}}for(int i=0;i<row;++i){for(int j=0;j<row;++j){if(a[i][j]!=0){cout<<a[i][j]<<" ";}}cout<<endl;}}return 0;
}
方案二:
#include <iostream>
using namespace std;int main()
{int row;while(cin>>row){for (int i = 1; i <= row; ++i) //行{for (int j = 1; j < row-(i-1); ++j) //列{cout<< ((j+i-1)*(j+i-1)+j+i-1)/2 -(i-1)<<" ";}cout<< (row*row+row)/2-(i-1) <<endl;}}return 0;
}
华为机试HJ35:蛇形矩阵相关推荐
- 【牛客网华为机试】HJ69 矩阵乘法
题目 描述 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C.这个矩阵的每个元素是由下面的公式决定的 矩阵的大小不超过100*100 输入描述: 输入包含 ...
- 华为机试HJ69:矩阵乘法
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z ...
- 华为机试108题(C 语言解答)
Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...
- 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...
- 【华为机试真题Java】从入门到入职-真题列表导读
写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...
- 【华为机试】死记硬背没思路?一般人我劝你还是算了吧
大家好,我是哪吒. 五月份之前,如果你参加华为OD机试,收到的应该是2022Q4或2023Q1,这两个都是A卷题. 5月10日之后,很多小伙伴收到的是B卷,那么恭喜你看到本文了,抓紧刷题吧.B卷新题库 ...
- 华为机试在线训练--牛客网(python)第四部分
华为机试在线训练–牛客网(python) 第四部分(31~40) 第三十一题:[中级]单词倒排 题目描述 对字符串中的所有单词进行倒排. 说明: 1.每个单词是以26个大写或小写英文字母构成: 2.非 ...
- 集合篇10.华为机试(涮题记录2)
华为机试 31.成绩排序(**not) 32. 矩阵乘法 33. 24点游戏算法(not) 34.配置文件恢复 35. 查找两个字符串a.b中的最长公共子串 36.MP3光标位置(not) 37.DN ...
- 牛客在线编程-华为机试-中等
牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...
最新文章
- 003_Controller和RequestMapping注解
- 《Neo4j全栈开发》_陈韶健
- 关于C#异步编程的建议
- 3、C#面向对象:封装、继承、多态、String、集合、文件(下)
- Socket TCP和UDP的区别
- 性能测试脚本之SQLServer执行语句
- 深度学习简单线性训练
- SD卡中FAT32文件格式高速入门(图文具体介绍)
- c语言定义星期一到日,C语言万年历程序设计
- unity实现打飞碟游戏
- PoE交换机可以当普通交换机使用吗?
- 2020-04-27
- 卡贴机变无锁教程_卡贴机怎么解锁变无锁
- 参加第一届“SLAM技术及应用”暑期学校暨研讨会和全国SLAM技术论坛有感
- 课程设计-在校整理-10 基于知识图谱的医疗智能问答小程序实现示例
- 1. python爬虫
- 【通俗向】假设检验(三):卡方检验和t检验
- Unity调用Android封装的声网sdk
- 阿里云【7天实践训练营】进阶路线——Day2:阿里云云计算助理工程师认证(ACA)课程1 ~ 2章
- IIS服务器配置,添加网站的配置
热门文章
- 我的idea突然没有SVN了是怎么回事
- Codeforces 994 C - Two Squares
- C# 中base和this关键字
- SDK里报错[NSConcreteMutableData wbsdk_base64EncodedString]
- 410. 分割数组的最大值
- shared_ptr使用场景、陷阱、性能分析,使用建议
- 激活层是每一层都有吗_每一个日出日落,都是岁月痕迹。这些在东软的第一次,你还记得吗...
- JSP手机商城系统设计网站
- 用Java+Html+MySQL 实现注册、登录(servlet框架)-(一)
- mysql 数据库dbhelp_策略模式实现支持多种类数据库的DBHelp