OpenJudge - 24:蛇形填充数组


解题思路:

1.由题可得,输入一个数n,然后构建乘n*n的方阵,将1-n*n的数按照蛇形的方式填入二维数组

2.首先,面对这种题,一定要手动演算一遍会发现遍历的流动方向是和行列号的和有关的,从下标1开始遍历,最小的行列和为2,最大的为n*2如果行列和是奇数的话,行数是从小到大遍历,列数是从大到小遍历的,只要根据行列和,找到行数和列数相加相等的值,然后通过num赋值就可以,赋值完后num++

3.同理,如果行列和是偶数的话,行数是从大到小开始遍历的,列数是从小到大遍历的,只要满足i+j=行列和,将num赋值,然后再自增

4.最后输出二维数组即可


#include<bits/stdc++.h>
using namespace std;
int a[15][15];
int main()
{int n,num=1;cin>>n;//输入方阵的边长 for(int k=2;k<=n*2;k++)//枚举行列下标的值 {if(k%2==0)//如果行列下标和是偶数的话 {for(int i=n;i>=1;i--)//行数从大到小依次遍历 {for(int j=1;j<=n;j++)//列数从小到大依次遍历 {if(i+j==k)//如果此时的行列相加为k {a[i][j]=num;//将num赋值给这个位置 num++;//数字增加 }}}}else//如果行列下标和是奇数的话 {for(int i=1;i<=n;i++)//行数从小到大遍历 {for(int j=n;j>=1;j--)//列数从大到小遍历 {if(i+j==k)//如果此时的行列相加为k {a[i][j]=num;//将num赋值给这个位置 num++;//数字增加 }}}}}for(int i=1;i<=n;i++)//打印二维数组 {for(int j=1;j<=n;j++)cout<<a[i][j]<<" ";cout<<endl;}return 0;
}

openjudge 1.8.24 蛇形填充数组相关推荐

  1. OpenJudge NOI 1.8 24:蛇形填充数组

    [题目链接] OpenJudge NOI 1.8 24:蛇形填充数组 [题目考点] 1. 二维数组 [解题思路] 解法1:移动焦点 设焦点位置,焦点移动同时为焦点位置赋值.焦点移动规则为: 移动到右上 ...

  2. c语言蛇形填充数组,蛇形

    题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 例如,当输入5时,应该输出的三角形为: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 请注意本题含有多组样 ...

  3. 蛇形打印数组(某宝典公司面试手撕代码题)

    背景杂谈 不知道为什么,可能脑袋一下放空了,一不小心就想到了大约2年前,在某个知名的宝典公司面试中,遇到了一道手撕代码题,和多年前的google的那道螺旋遍历数据有异曲同工之妙.现脑洞大开,想写下与大 ...

  4. java 可变参数列表 数组_java可变参数列表如何填充数组?

    在对于数组的填充上,我们可以运行参数的传递,把数组作为可变参数的列表进行调整.对于一些参数个数和类型未知的时候,这种方法就能帮助我们解决填充数组的难题,因为这种方法并不需要提前知道.下面我们就可变参数 ...

  5. new 数组_编程-遍历数组元素N次/填充数组至指定长度

    需求如下: 有数组 names=["a","b","c"] 需要遍历数组元素n次,比如: n=2时,期待的输出为:a,b n=5时,期待的输 ...

  6. php向数组前加如指定键的值,PHP array_fill_keys():使用指定的键和值来填充数组

    PHP array_fill_keys() 函数使用指定的键和值来填充出一个新数组,其语法如下: array array_fill_keys ( array $keys , mixed $value ...

  7. c语言字符数组自动填充,数组在C中自动填充

    我正在学习C,做一些简单的例子,并发现了这种奇怪的行为. 当填充整数数组的元素时,如果任何元素设置为大于2147483647(我相信是最大整数值?),则数组中的其余元素将设置为该确切数字,每个其中之一 ...

  8. openjudge 1.5.24 正常血压

    OpenJudge - 24:正常血压 解题思路: 1.由题可知,一共有n行,每行包含两个整数,分别对应着收缩压和舒张压,并且直到收缩压在90-140之间是正常的,舒张压在60-90之间是正常的 2. ...

  9. matlab 填充数组,Matlab自动将数组类型从复数转换为double

    我有一个烦人的情况,我无法用我的google-fu解决,所以转向我们的常驻matlab专家寻求帮助. 假设我运行以下代码 "" 我得到以下输出 AA = ones(10,2) + ...

最新文章

  1. Fastq-dump:我的日常命令
  2. ASP.NET MVC Routing、Areas、URLs
  3. Salesforce中所有常用类型字段的取值与赋值
  4. mysql 排序字段是否需要建索引_MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化)...
  5. python不同模块间传递数据_Python模块-数据传送模块
  6. Mybatis(15)Mybatis延迟加载/缓存
  7. 【C++基础学习】二维数组的动态分配及参数传递
  8. 中国双色向滤光镜行业市场供需与战略研究报告
  9. 二叉搜索树的公共祖先,二叉树的最近公共祖先
  10. Codeforces 1169A Circle Metro
  11. Luogu1502 窗口的星星
  12. 2022年深圳有哪些好玩的小镇古城推荐
  13. 计算机学模型,计算机数学模型.pdf
  14. IDEA中集成使用SVN
  15. MATLAB常用数据导入
  16. Labview学习之波形图表的历史数据
  17. 【AIGC使用教程】Notion AI 从注册到体验:如何免费使用
  18. EBS MO_GLOBAL包的分析
  19. 如何理解向量组的秩和矩阵的秩
  20. 2010年IT十大人物猜想

热门文章

  1. Qt用代码实现菜单栏(MenuBar)和工具栏(ToolBar)
  2. Spring Cloud H SR5集成 Jaeger
  3. 每天干的啥?(2018.11)
  4. 算法设计与分析——位图(BitMap)
  5. c语言快速复数的比较大小,c语言中的复数操作
  6. 计算机显示器文字不清楚,电脑显示器字体模糊,请问怎么解决
  7. 基于89C51单片机的433M射频遥控灯
  8. 关于android架构的英文资料,第十五期:英语流利说 Android 架构演进
  9. linux yum安装rar解压软件
  10. 推荐几款简单的音视频编辑软件