在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方阵为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4

输入

直接输入方阵的维数,即n的值。(n<=100)

输出

输出结果是蛇形方阵。

样例输入

3

样例输出

7 8 1

6 9 2

5 4 3

这里我为了好看对格式做了处理,并改成了多组输入,提交肯不过呀

#include <iostream>
#include <iomanip>
using namespace std;int main()
{int n;int a[101][101];while(cin>>n){int M=0,N=n-1;  //在主对角线左上和右下设立标志int x; //行坐标int y; //列坐标int i=1,j;while(i<n*n-1){for(x=M,y=N; x<=N; x++){a[x][y]=i++;}x--;N--; //右下方标志向左上趋近一位for(y=N; y>=M; y--){a[x][y]=i++;}y++;for(x=N; x>=M; x--){a[x][y]=i++;}x++;M++; //左上方标志向右下趋近一位for(y=M; y<=N; y++){a[x][y]=i++;}y--;}if(n%2)a[M][N]=i;for(int i=0; i<n; i++){for(int j=0; j<n; j++)cout<<setiosflags(ios::right)<<setw(3)<<a[i][j]<<" ";cout<<endl;}}return 0;
}

更新,看了别人的代码,感觉自己的好乱

下面是根据别人代码改进的

#include <iostream>using namespace std;int main()
{int n;int a[101][101];while(cin>>n){int circle=0;int k=1;int i=0;int j=n-1;while(k<=n*n){for (; i<n-circle; i++){a[i][j]=k++;}i--;for (j-=1; j>=circle; j--){a[i][j]=k++;}j++;for (i-=1; i>=circle; i--){a[i][j]=k++;}i++;circle++;for (j+=1; j<n-circle; j++){a[i][j]=k++;}j--;i++;}for(int i=0; i<n; i++){for(int j=0; j<n; j++){cout<<a[i][j]<<" ";}cout<<endl;}}return 0;
}

转载于:https://www.cnblogs.com/zhanyeye/p/9746125.html

NYOJ033蛇形填数相关推荐

  1. 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数

    2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数 Ideas 这题其实严格意义上属于一道找规律的题目,并不是啥算法题. 我们可以先按照它的规律多写几行. 1 2 6 7 ...

  2. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

  3. 计算机精英协会考核题 —— 第二题:蛇形填数

    题目 2.蛇形填数 给出 n * n 方阵,要求从 1 开始按顺序依次填写,填写方式如下: n = 4 时, 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13 输入 n,请 ...

  4. 第十一届蓝桥杯A组省赛填空试题 C: 蛇形填数(Java)

    试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...

  5. 信息学奥赛一本通 2045:【例5.13】蛇形填数

    [题目链接] ybt 2045:[例5.13]蛇形填数 [题目考点] 1. 二维数组 2. 方向数组(可能用到) int dir[4][2] = {{1,0},{0,-1},{-1,0},{0,1}} ...

  6. 信息学奥赛一本通(2045:【例5.13】蛇形填数)

    2045:[例5.13]蛇形填数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 374     通过数: 191 [题目描述] 在n×nn×n方阵里填入1,2,3 ...

  7. NYOJ33 - 蛇形填数

    描述: 在n*n方陈里填入1,2,-,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入: 直接输入方陈的维数,即n的值.( ...

  8. 南阳oj入门题-蛇形填数

    /** 蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 ...

  9. 蓝桥杯真题——蛇形填数(c语言)

    目录 一.题目描述 二.解题思路 三.程序操作 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如下图所示,小明用从 1 开始的正整数"蛇形" ...

  10. 第十一届蓝桥杯大赛省赛真题-填空题-蛇形填数(Java实现)

    试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...

最新文章

  1. 阿里三面被挂,幸获内推,历经5轮终于拿到口碑offer
  2. Linux多用户、多任务的特性
  3. 学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  4. 陪伴程序员的一条龙、一骑士 36 岁了!
  5. 超准中医体质测试 源码_心理测试:这几张心理测试图,一眼看透你的内心!不信你来试试!...
  6. 将一张表的数据插入另外一张表
  7. 如何使用LaTeX让自己不乱?
  8. C++子类析构时要调用父类的析构函数吗?
  9. TabLayout和ViewPager
  10. 完全用 gnu/linux 工作,怎样完全用 GNU/Linux 工作
  11. python 金字塔的程序_python生成金字塔
  12. 官网python安装教程_Python安装教程
  13. [记录]firefox繁体转换成简体的油猴脚本
  14. Time flies
  15. 【速达软件】【速达5000】5系3.97批量删除采购开单从表重复项并合计到主表
  16. Springcloud euraka服务
  17. java语法分析器_JavaCC语法分析器
  18. 如何提高逻辑思维能力
  19. scala安装及环境配置
  20. HTML写表格记录(二)--如何在HTML中表达“>“,“<“大于号小于号,以及<b>的意思

热门文章

  1. 职高计算机应用基础学的什么,职高计算机应用基础教法初探
  2. <aop:aspectj-autoproxy />AOP自动代理
  3. Maven setting文件配置错误:Non-parseable settings..in comment after two dashes (--) next character must be
  4. C++ - 线程安全的std::cout
  5. 零基础开发NBIOT
  6. 从零开始搭建ROS移动机器人系列之(四)直流电机PWM调速
  7. java的listroots_Java File listRoots()用法及代码示例
  8. 梧桐树定制福满满养老年金,给你养老生活源源不断的现金流!
  9. 奈奎斯特与香农定理_奈奎斯特定理和香农定理解析
  10. 解决: 在路径为[/StudentManagerWeb]的上下文中,servlet[LoginServlet]的Servlet.service()引发异常 java.lang.NullPointe