作者:翟天保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:蛇形矩阵相关推荐

  1. 【牛客网华为机试】HJ69 矩阵乘法

    题目 描述 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C.这个矩阵的每个元素是由下面的公式决定的 矩阵的大小不超过100*100 输入描述: 输入包含 ...

  2. 华为机试HJ69:矩阵乘法

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z ...

  3. 华为机试108题(C 语言解答)

    Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...

  4. 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...

  5. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

  6. 【华为机试】死记硬背没思路?一般人我劝你还是算了吧

    大家好,我是哪吒. 五月份之前,如果你参加华为OD机试,收到的应该是2022Q4或2023Q1,这两个都是A卷题. 5月10日之后,很多小伙伴收到的是B卷,那么恭喜你看到本文了,抓紧刷题吧.B卷新题库 ...

  7. 华为机试在线训练--牛客网(python)第四部分

    华为机试在线训练–牛客网(python) 第四部分(31~40) 第三十一题:[中级]单词倒排 题目描述 对字符串中的所有单词进行倒排. 说明: 1.每个单词是以26个大写或小写英文字母构成: 2.非 ...

  8. 集合篇10.华为机试(涮题记录2)

    华为机试 31.成绩排序(**not) 32. 矩阵乘法 33. 24点游戏算法(not) 34.配置文件恢复 35. 查找两个字符串a.b中的最长公共子串 36.MP3光标位置(not) 37.DN ...

  9. 牛客在线编程-华为机试-中等

    牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...

最新文章

  1. 003_Controller和RequestMapping注解
  2. 《Neo4j全栈开发》_陈韶健
  3. 关于C#异步编程的建议
  4. 3、C#面向对象:封装、继承、多态、String、集合、文件(下)
  5. Socket TCP和UDP的区别
  6. 性能测试脚本之SQLServer执行语句
  7. 深度学习简单线性训练
  8. SD卡中FAT32文件格式高速入门(图文具体介绍)
  9. c语言定义星期一到日,C语言万年历程序设计
  10. unity实现打飞碟游戏
  11. PoE交换机可以当普通交换机使用吗?
  12. 2020-04-27
  13. 卡贴机变无锁教程_卡贴机怎么解锁变无锁
  14. 参加第一届“SLAM技术及应用”暑期学校暨研讨会和全国SLAM技术论坛有感
  15. 课程设计-在校整理-10 基于知识图谱的医疗智能问答小程序实现示例
  16. 1. python爬虫
  17. 【通俗向】假设检验(三):卡方检验和t检验
  18. Unity调用Android封装的声网sdk
  19. 阿里云【7天实践训练营】进阶路线——Day2:阿里云云计算助理工程师认证(ACA)课程1 ~ 2章
  20. IIS服务器配置,添加网站的配置

热门文章

  1. 我的idea突然没有SVN了是怎么回事
  2. Codeforces 994 C - Two Squares
  3. C# 中base和this关键字
  4. SDK里报错[NSConcreteMutableData wbsdk_base64EncodedString]
  5. 410. 分割数组的最大值
  6. shared_ptr使用场景、陷阱、性能分析,使用建议
  7. 激活层是每一层都有吗_每一个日出日落,都是岁月痕迹。这些在东软的第一次,你还记得吗...
  8. JSP手机商城系统设计网站
  9. 用Java+Html+MySQL 实现注册、登录(servlet框架)-(一)
  10. mysql 数据库dbhelp_策略模式实现支持多种类数据库的DBHelp