蛇形矩阵(完全)

2023-10-27

画 n阶蛇形方阵
比如如图是5阶方阵(5条对角线)
1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25

解题思路:
1.分为上三角和下三角,上三角的思路是同蛇形矩阵(不完全)
注意应该判断前面对角线个数的奇偶性来确定是前面对角线之和加行还是列;奇加行,偶加列;
2.至于下三角则需要用到对称的思想:
首先易推知a[i][j]的对称式为a[n+1-i][n+1-j],如5阶矩阵中a[2][5]对称式a[4][1],
其次根据对称的两对数之和等于n*n+1,
就可以利用已知的上三角来求下三角了;具体见代码;

具体代码如下:

#include <stdio.h>
#include <string.h>
 int main()
 {
   int x,y,i,j,k,sum,n;
   int a[105][105];
     x=y=1;
     memset(a,0,sizeof(a));
     scanf("%d",&n);
     for (i=1;i<=n;i++)
        for (j=1;j<=n+1-i;j++)
     {
         k=i+j-2;
         sum=(k+1)*k/2;
         if (k%2)//如果前面的对角线个数是奇数
           a[i][j]=sum+i;
        else
           a[i][j]=sum+j;
      }
     for (i=1;i<=n;i++)
       for (j=n-i+2;j<=n;j++)
           a[i][j]=n*n+1-a[n+1-i][n+1-j];
     for (i=1;i<=n;i++)
     {
       for (j=1;j<=n;j++)
           printf("%5d",a[i][j]);
           printf("\n");
      }
     return 0;
 }

仅代表个人见解!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蛇形矩阵(完全) 的相关文章

  • java反射

    文章目录 1 反射的缘起 1 1 什么是反射及反射机制 1 2 为什么会产生反射 1 反射的缘起 1 1 什么是反射及反射机制 反射就是把java类中的各个成分 构造器 属性 方法 映射成一个个的java对象 即在运行状态中 1 对于任意一
  • ThreadLocal的使用

    一 介绍 ThreadLocal的官方解释 ThreadLocal 是线程的局部变量 是每一个线程所单独持有的 其他线程不能对其进行访问 通常是类中的 private static 字段 是一个以ThreadLocal对象为键 任意对象为值
  • AD多张原理图元件自动标号

    首先新建工程 包含两张以上原理图 将原理图先画好 不需要标注 然后在任意原理图界面使用快捷键TAA 上图中箭头所指则为需要更改部分 1 处理顺序是选择你的元件标注顺序 一般从上往下 从左往右即可 2 原理图页标注栏中的顺序是指先标注哪张原理
  • mysql 关联删除_mysql如何删除关联表

    mysql数据库中 表与表之间进行关联之后 就不可随意的进行删除操作 否则会影响所有关联表之间的结构 那么如何安全的删除关联表呢 让我们来了解一下 mysql使用drop命令删除关联表 方法为 1 删除表的外键约束 外键是一个特殊字段 其将
  • python retrying_python自动重试第三方包retrying模块的方法

    retrying是一个python的重试包 可以用来自动重试一些可能运行失败的程序段 retrying提供一个装饰器函数retry 被装饰的函数就会在运行失败的情况下重新执行 默认只要一直报错就会不断重试 最近写了一个爬虫 需要连接国外的一
  • 【C++】一文解析std::binary_function、std::bind1st、std::bind2nd、std::bind

    STL中有一个叫做 适配器 的概念 它指的是某些函数可能定义了两个形参 但是某些算法需要的函数却有时候需要一个形参 那么就需要对其进行适配 将原本只需要两个参数的函数转变成需要1和参数就能正常运行的函数 就像你为你的笔记本充电 能直接一根火
  • Linux进程的基础知识、fork复制进程

    目录 1 进程的基础知识 1 进程 2 PCB 3 进程的状态 4 并发与运行 2 操作系统发展史 3 fork复制进程 1 进程的基础知识 1 进程 一个正在运行的程序 2 PCB 进程控制块 进程控制块是用一个结构体struct tas
  • 【贪心算法】背包问题

    题目 有一个背包 背包容量是M 150 有7个物品 物品可以分割成任意大小 要求尽可能让装入背包中的物品总价值最大 但不能超过总容量 物品 A B C D E F G 重量 35 30 60 50 40 10 25 价值 10 40 30
  • esp8266单片机透传_ESP8266系列 NODEMCU初体验

    上一次 我们讲到了ESP 01s 实际上就是一块WiFi透传模块 只能挂在单片机上 起到一个沟通和桥梁的作用 今天 我们来介绍ESP家族另一款非常常用的芯片 ESP8266 12系列 这个想邮票一样的芯片就是我们的12E 可以看出他与01s
  • c++基础二

    c 基础 无符号整数 unsigned unsigned char的范围从0开始 至少到255 unsigned int的范围从0开始 至少到65535 unsigned short的范围从0开始 至少到65535 unsigned lon
  • linux,Centos7,yum安装的curl无法正常使用

    root centos yum y install curl Loaded plugins fastestmirror langpacks Loading mirror speeds from cached hostfile Package
  • adb连接报错:This adb server's $ADB_VENDOR_KEYS is not set Try 'adb kill-server' if that seems wrong.

    Microsoft Windows 版本 6 1 7601 版权所有 2009 Microsoft Corporation 保留所有权利 C Users Administrator gt adb install C Users Admini
  • 【备忘】Unity IOS 覆盖安装后进游戏黑屏

    情景 unity LuaFrameWork UGUI V2 把资源打在包内用于过审 上架appStore后 覆盖安装下进游戏出现黑屏情况 上一版本是打小包过审 即大部分资源在进游戏后下载 推测 查看项目代码后 发现资源路径没有按版本号区分
  • 进行人工智能机器人研发,应该选择哪种编程语言?

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 这个问题大多数新的机器人专家在他们的职业生涯中至少会思考一次 不幸的是 这也是一个没有直接答案的问题 如果你在 Stack Overflow Quora Trossen R
  • 运行springmvc时出现如下错误org.springframework.web.servlet.DispatcherServlet noHandlerFound

    出现错误 八月 12 2018 10 46 42 上午 org springframework web servlet DispatcherServlet noHandlerFound 警告 No mapping found for HTT
  • 飞书小程序开发

    1 tt showModal后跳转页面 跳转路径要为绝对路径 相对路径跳转无响应 2 手机息屏后将不再进入onload 生命周期 直接进入onshow 生命周期 onLoad 在页面初始化的时候触发 一个页面只调用一次 onShow 在切入
  • 杀死“比尔”

    所有人有一个初始的生命值 一个警官要杀一个人则该人的生命值减p 其他人则减Q 最少要杀多少次才可以把所有人杀掉 百度笔试手速太慢 没敲上去 可怜 include
  • 【观察】浪潮K1 Power:产业升级换挡提速,关键计算保驾护航

    今天 国家对数字经济给予了前所未有的高度重视 在 十四五 规划中 国家就明确提出了要将数字经济核心产业增加值占GDP的比重从7 8 提高到10 这也意味着未来整个计算产业将会迎来更大的需求 而算力也将成为数字经济时代的核心生产要素 在此过程
  • LeetCode 150. 逆波兰表达式求值

    题目链接 150 逆波兰表达式求值 遍历所有元素 如果当前元素是整数 则压入栈 如果是运算符 则将栈顶两个元素弹出做相应运算 再将结果入栈 最终表达式扫描完后 栈里的数就是结果 数组模拟栈 class Solution public int

随机推荐

  • Redis高级之IO多路复用和epoll(十二)

    nginx 的反向代理也是采用了IO多路复用 1 是什么 I O 网络 I O 多路 多个客户端连接 连接就是套接字描述符 即socket 或者 channel 指的是多条 TCP 连接 复用 用一个进程来处理多条的连接 使用单进程就能实现
  • 贪心算法三个经典例题

    贪心算法的三个经典例题 A Saruman s Army 题目描述 Saruman the White must lead his army along a straight path from Isengard to Helm s Dee
  • JVM:常用的四种垃圾回收机制

    1 CMS Concurrent Mark Sweep 并行 标记清除 老年代垃圾回收机制 cms是一个基于标记 清除 算法的综合多种算法的老年代垃圾回收器 适用场景 重视服务器响应速度 要求系统停顿时间最短 这里要说明下 这是一个老年代算
  • posefs1.perception.cs.cmu.edu 无法访问

    我尝试练习openpose时 发现运行的代码缺乏coffee的model 需要执行models 下的bat或sh 但是 posefs1 perception cs cmu edu 无法访问 从Kaggle上下载 https www kagg
  • Java学到什么程度才能叫精通?

    把下面这些内容掌握以后 你就可以自诩精通Java后端了 1 计算机基础 这部分内容是计算机相关专业同学的课程 但是非科班的小伙伴 譬如在下 就需要花时间恶补了 特别 是计算机网络 操作系统 数据结构这三门课程 至于编译原理 个人大概懂一点就
  • 段页式存储及分段分页优缺点分析,对比(王道考研_操作系统)

    分段分页优缺点分析 段页式管理 将进程按照逻辑模块分段 再将各段分页 再将内存空间分为大小相同的页框 最后将各个页装入各个内存块中 基本分段存储管理 与分页相比 离散分配时所分配的地址空间的基本单位不同 定义 进程的地址空间 按照程序的自身
  • STL中常用的排序算法

    merge 以下是排序和通用算法 提供元素排序策略 merge 合并两个有序序列 存放到另一个序列 例如 vecIntA vecIntB vecIntC是用vector
  • Git 版本回退与前进(03)

    现在 你已经学会了修改文件 然后把修改提交到Git版本库 现在 再练习一次 修改readme txt文件如下 Git is a distributed version control system Git is free software
  • 理解attention的image to caption(图片的文字描述)

    更多查看 https github com B C WANG AI Storage 4 1 理解attention的image to caption 图片的文字描述 4 1 1 一 一个简单模型 Encoder 使用预训练的CNN进行fin
  • flex局部的知识总结(转载)

    版权声明 本文为CSDN博主 Coralpapy 的原创文章 遵循CC 4 0 BY SA版权协议 转载请附上原文出处链接及本声明 原文链接 https blog csdn net Coralpapy article details 120
  • 用limma包的voom方法来做RNA-seq 差异分析

    用limma包的voom方法来做RNA seq 差异分析 大家都知道 这十几年来最流行的差异分析软件就是R的limma包了 但是它以前只支持microarray的表达数据 考虑到大家都熟悉了它 它又发了一个voom的方法 让它从此支持RNA
  • Python-绘制七段数码管

    SevenDigitsDrawV2 py import turtle time def drawGap 绘制数码管间隔 turtle penup turtle fd 5 def drawLine draw 绘制单段数码管 drawGap t
  • vue踩坑填坑(四):在vue单页中修改title

    由于在vue单页应用中title只设定在入口文件index html 如果切换路由 title怎么更换 在路由router中设置meta path chooseBrand component resolve gt require compo
  • 数据链路层简介

    1 数据链路层的基本概念 数据链路层在物理层提供服务的基础上向网络层提供服务 其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层 其主要作用是加强物理层传输原始比特流的功能 将物理层提供的可能出错的物理连接改造成为逻辑上
  • Python 保存数据的方法(4种方法)

    Python 保存数据的方法 open函数保存 使用with open 新建对象 写入数据 这里使用的是爬取豆瓣读书中一本书的豆瓣短评作为例子 import requests from lxml import etree 发送Request
  • 无线连接打印服务器,如何用旧电脑架设无线网络打印服务器

    如何用旧电脑架设无线网络打印服务器 由会员分享 可在线阅读 更多相关 如何用旧电脑架设无线网络打印服务器 4页珍藏版 请在人人文库网上搜索 1 如何用旧电脑架设无线网络打印服务器在工作中 单位需要打印的文件还是不少的 可是笔记本电脑连接一个
  • input框限输入数字并保留两位小数

    先把非数字的都替换掉 除了数字和 obj value obj value replace d g 保证只有出现一个 而没有多个 obj value obj value replace 2 g 必须保证第一个为数字而不是 obj value
  • iOS上架及ipa包上传到AppStore

    概述 由于苹果的机制 在非越狱机器上安装应用必须通过官方的Appstore 开发者开发好应用后上传Appstore 也需要通过审核等环节 AppCan作为一个跨主流平台的一个开发平台 也对ipa包上传Appstore作了支持 本文从三个流程
  • 通过canvas实现将html的某些元素转为png图片

    有时候我们需要把html或者某些html元素转换为图片 并且支持下载 下面是学习之后的总结 希望能给大家带来帮助 所需插件库 html2canvas js canvas2image js base64 js 资源地址 链接 https pa
  • 蛇形矩阵(完全)

    画 n阶蛇形方阵 比如如图是5阶方阵 5条对角线 1 2 6 7 15 3 5 8 14 16 4 9 13 17 22 10 12 18 21 23 11 19 20 24 25 解题思路 1 分为上三角和下三角 上三角的思路是同蛇形矩阵