1160 蛇形矩阵
2018-06-17 23:04:22来源:未知 阅读 ()
1160 蛇形矩阵
小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和.
n(即n行n列)
n+1行,n行为组成的矩阵,最后一行为对角线数字之和
3
5 4 3
6 1 2
7 8 9
25
1 #include<iostream> 2 using namespace std; 3 int now=1; 4 int a[101][101]; 5 int s=0; 6 int fx=1;// 1右 2左 3上 4下 7 int tot=1; 8 int ans=0; 9 int main() 10 { 11 int n; 12 cin>>n; 13 s=n/2+1; 14 int i=s; 15 int j=s; 16 a[i][j]=now; 17 now++; 18 while(tot!=n*n) 19 { 20 if(fx==1&&j-i==1) 21 { 22 fx=3; 23 //a[i][j]=now; 24 //now++; 25 // tot++; 26 } 27 if(fx==2&&i==j) 28 { 29 fx=4; 30 //a[i][j]=now; 31 // now++; 32 // tot++; 33 } 34 if(fx==3&&(i+j==n+1)) 35 { 36 fx=2; 37 //a[i][j]=now; 38 // now++; 39 // tot++; 40 } 41 if(fx==4&&(i+j==n+1)) 42 { 43 fx=1; 44 //a[i][j]=now; 45 // now++; 46 // tot++; 47 } 48 if(fx==1)// 1右 2左 3上 4下 49 { 50 j++; 51 a[i][j]=now; 52 now++; 53 tot++; 54 } 55 if(fx==2)// 1右 2左 3上 4下 56 { 57 j--; 58 a[i][j]=now; 59 now++; 60 tot++; 61 } 62 if(fx==3)// 1右 2左 3上 4下 63 { 64 i--; 65 a[i][j]=now; 66 now++; 67 tot++; 68 } 69 if(fx==4)// 1右 2左 3上 4下 70 { 71 i++; 72 a[i][j]=now; 73 now++; 74 tot++; 75 } 76 } 77 for(int i=1;i<=n;i++) 78 { 79 for(int j=1;j<=n;j++) 80 { 81 cout<<a[i][j]<<" "; 82 if((i+j==n+1)||(i==j)) 83 ans=ans+a[i][j]; 84 } 85 cout<<endl; 86 } 87 cout<<ans; 88 return 0; 89 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:1083 Cantor表
下一篇:1142 奖学金 sort做法
- 稀疏矩阵类 2020-06-09
- 重载矩阵加法运算 代码参考 2020-04-29
- 螺旋矩阵问题 2020-04-18
- 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的 2020-04-15
- 快速幂与矩阵快速幂 2020-01-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash