博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACM_三角形蛇形矩阵
阅读量:4549 次
发布时间:2019-06-08

本文共 2274 字,大约阅读时间需要 7 分钟。

三角形蛇形矩阵

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

小铠觉得各类题型是要温故而知新的,所以他叫小发出一道类似做过的题。其实,一开始小发是拒绝的,但后来想了想,出些能坑别人的题也是人生的一大乐趣,何乐而不为。小发回顾了做过的题,灵机一闪,出了道三角形的蛇形矩阵。

Input:

输入包含多组测试数据,首先输入n(1
<=20),代表n*n的三角形矩阵。

Output:

当n为奇数时,从1开始顺时针方向填入递增数据,并且在左下角输出三角形斜边的值之和m;当n为偶数时,从1开始逆时针方向填入递增数据,并且在右上角输出三角形斜边的值之和m。(注意数据间的空格和m的位置)注意最后一个数字依然有空格,规则是数字加空格位数为4位,具体参考样例。

Sample Input:

45

Sample Output:

1           262   8   3   9   10  4   5   6   7   1   2   3   4   5       10  11  12  6           15  13  7               14  8   49              9 解题思路:水题!一直卡PE,最后发现原来当n为偶数时,除了右上角那个值后面不能有空格之外,其它情况每行输出的最后一个数字+空格共占4位,即最后一个数字的位数如果小于4,则后面需带(4-最后一个数字的位数)个空格。 AC代码:
1 #include
2 using namespace std; 3 int main(){ 4 int n,m,i,j,border,a[25][25]; 5 while(~scanf("%d",&n)){ 6 memset(a,0,sizeof(a));m=1;//a数组清0 7 if(n%2){
//奇数 8 for(int k=1;k<=(n+1)/2;++k){ 9 i=j=k;border=n-k+1;10 while(j<=border){a[i][j]=m++;j++;}11 i++;j--;12 while(i<=border){a[i][j]=m++;i++;}13 }14 for(int k=1;k<=n;++k)a[n][1]+=a[k][k];15 for(int k=1;k<=n;k++){16 for(int g=1;g<=n;++g){17 if(a[k][g]==0)printf(" ");18 else printf("%-4d",a[k][g]);19 }20 printf("\n");21 }22 }23 else{
//偶数24 for(int k=1;k<=n/2;++k){25 i=j=k;border=n-k+1;26 while(i<=border){a[i][j]=m++;i++;}27 i--;j++;28 while(j<=border){a[i][j]=m++;j++;}29 }30 for(int k=1;k<=n;++k)a[1][n]+=a[k][k];31 for(int g=1;g<=n;++g){32 if(a[1][g]==0)printf(" ");33 else{34 if(g!=n)printf("%-4d",a[1][g]);35 else printf("%d\n",a[1][g]);//n为偶数的时候右上角这个值后面不能有空格36 }37 }38 for(int k=2;k<=n;k++){39 for(int g=1;g<=k;++g)40 printf("%-4d",a[k][g]);//其余每行最后一个数字+空格共占4位41 printf("\n");42 }43 }44 }45 return 0;46 }

 

转载于:https://www.cnblogs.com/acgoto/p/9223050.html

你可能感兴趣的文章
一个改变this指向bind的函数,vue源代码
查看>>
浅谈redux 中间件的原理
查看>>
01背包问题-动态规划算法
查看>>
我要成为前端工程师!给 JavaScript 新手的建议与学习资源整理
查看>>
ubuntu android
查看>>
一个叫<NameValuePair>的东西~~~
查看>>
ssh三大框架实现(一)---登陆功能
查看>>
Java设计模式之工厂设计模式
查看>>
The Number of Inversions(逆序数)
查看>>
转发帖子链[CodeForces-522A]
查看>>
n个灯,k个人的开灯问题
查看>>
android studio 问题1
查看>>
oracle查重和oracle分页
查看>>
Javascript库
查看>>
几个基本算法
查看>>
Windows 7 (x64) 系统下安装与配置 Windows Live Writer 2012 16.4.3528.0331 图文详细教程
查看>>
关于利用ajax时,设置访问延时的方法
查看>>
jQuery如何获取动态添加的元素
查看>>
百度权重、360权重、Google PR值详解
查看>>
《APUE》:对各个标准I/O流打印缓冲状态 【我的转载】
查看>>