题目描述 Description

小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和.

输入描述 Input Description

n(即n行n列)

输出描述 Output Description

n+1行,n行为组成的矩阵,最后一行为对角线数字之和

样例输入 Sample Input

3

样例输出 Sample Output

5 4 3
6 1 2
7 8 9
25

数据范围及提示 Data Size & Hint

思路:对于这题,刚开始我是想用数学公式来表示每一个点的计算方法,但是经过复杂的计算后,我放弃了,点太多而且很难表达,所以我就纯粹地模拟了一下

光讲思路没有用,还是要举个栗子(7*7的矩阵):

我用了四个for循环,从外往内标记数组,分别为下、左、上、右,这样经过一轮下来就是一个框了,外面再用一个循环来控制框的数量,就可以完整地把矩阵标记完全

所以这题关键就是要考虑的就是四个for循环的气质条件和循环次数,为了方便,我用了一个flag记录框的层数,最外层是第一层(flag=1),temp来控制框的数量(循环的数量):temp=(n-1)/2

如图所示,我先对这个矩阵做了一些处理,也就是把每一个框的起点先标记好:aaarticlea/png;base64,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" alt="" width="179" height="186" />

如图所示,红色的线标记出来了下左上右的循环起止点,这样就可以嵌套成为一个完整的框了:aaarticlea/png;base64,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" alt="" width="325" height="176" />

那么该怎样确定循环的起止点呢?这里就要用到前面的flag层数了,仔细观察可以发现:

第一个for循环j的起点=n-flag-1,终止点为flag-1;

第二个for循环i的起点=n-flag-1,终止点为flag-1;

第三个for循环j的起点=flag,终止点为n-flag;

第四个for循环的起点=flag,终止点为n-flag-1。

每次a[i][j]都赋值为前面的数+1即可,用一个temp来控制框的数量,每次temp--就可以啦

最后计算对角线的和,这里没什么好说的了,记得最后要减去一个重复的1

代码如下:

 #include <stdio.h>
int main()
{
int n,i,j;//i表示行,j表示列
int a[][]={};
int kk=;//用来计算奇数的平方
int flag=,temp;//flag记录循环的层数,temp控制循环终止条件
int ans=;//记录两条对角线的和
scanf("%d",&n);
temp=(n-)/;
a[(n-)/][(n-)/]=;//最中间标记为1
for(i=(n-)/;i<n;i++)//放入循环开始点
{
a[i][i]=kk*kk;
kk+=;
}
while(temp>)//循环填入边框
{
for(j=n-flag-;j>=flag-;j--)//下
{
a[n-flag][j]=a[n-flag][j+]-;
}
for(i=n-flag-;i>=flag-;i--)//左
{
a[i][flag-]=a[i+][flag-]-;
}
for(j=flag;j<=n-flag;j++)//上
{
a[flag-][j]=a[flag-][j-]-;
}
for(i=flag;i<=n-flag-;i++)//右
{
a[i][n-flag]=a[i-][n-flag]-;
}
flag++;//进入下一层
temp--;//循环次数减少
}
for(i=;i<n;i++)//输出矩阵
{
for(j=;j<n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
/*====================*///计算两条对角线的和
for(i=;i<n;i++)
{
ans+=a[i][i];
}
for(i=n-;i>=;i--)
{
ans+=a[n--i][i];
}
printf("%d\n",ans-);//因为两条对角线都重复加了矩阵中心的1,所以要减去一个
return ;
}

最新文章

  1. 获取设备UDID、IMEI、ICCID、序列号、Mac地址等信息
  2. Dimmer: 通过移动鼠标来改变 LED 的亮度
  3. js 判断鼠标进去方向
  4. 【mysql创建用户|删除用户|修改用户权限|常用命令】
  5. SAP中关于用户IP信息的获取(转载)
  6. delphi 与 C++的基本语法区别
  7. 利用LibreOffice转换ppt、doc转化pdf
  8. ipad mini2 ios7 磁盘分析文件夹大小
  9. JAVA操作Excel时文字自适应单元格的宽度设置方法
  10. 总结QueueUserWorkItem传参的几种方式
  11. 鸽巢原理应用-分糖果 POJ 3370 Halloween treats
  12. lucene全文搜索之一:lucene的主要功能和基本结构(基于lucene5.5.3)
  13. Hibernate学习(三)一对多数据的保存
  14. Linux环境下安装配置Node.js
  15. 移动端js调试工具:eruda
  16. Beta冲刺(2/5)(麻瓜制造者)
  17. Selenium Web 自动化 - 项目实战(一)
  18. css3--之backface-visibility
  19. window搭建python环境
  20. EF Code First学习笔记 初识Code First(转)

热门文章

  1. 迁移Model元数据设置项
  2. C#通过接口与线程通信(捕获线程状态)介绍
  3. python线程Example
  4. Windbg找出死锁
  5. [转]PT_DENY_ATTACH
  6. Define Constraints That Are Minimal and Sufficient 设定不多不少的约束
  7. BizTalk 2010/2013 EDI B2B
  8. 百度地图定位SDK 之构想
  9. CentOS下Mysql安装教程
  10. aix 禁止root远程登录