ACM_三角形蛇形矩阵
三角形蛇形矩阵
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
小铠觉得各类题型是要温故而知新的,所以他叫小发出一道类似做过的题。其实,一开始小发是拒绝的,但后来想了想,出些能坑别人的题也是人生的一大乐趣,何乐而不为。小发回顾了做过的题,灵机一闪,出了道三角形的蛇形矩阵。
Input:
输入包含多组测试数据,首先输入n(1<n<=20),代表n*n的三角形矩阵。
Output:
当n为奇数时,从1开始顺时针方向填入递增数据,并且在左下角输出三角形斜边的值之和m;当n为偶数时,从1开始逆时针方向填入递增数据,并且在右上角输出三角形斜边的值之和m。(注意数据间的空格和m的位置)
注意最后一个数字依然有空格,规则是数字加空格位数为4位,具体参考样例。
Sample Input:
4
5
Sample Output:
1 26
2 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代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,i,j,border,a[][];
while(~scanf("%d",&n)){
memset(a,,sizeof(a));m=;//a数组清0
if(n%){//奇数
for(int k=;k<=(n+)/;++k){
i=j=k;border=n-k+;
while(j<=border){a[i][j]=m++;j++;}
i++;j--;
while(i<=border){a[i][j]=m++;i++;}
}
for(int k=;k<=n;++k)a[n][]+=a[k][k];
for(int k=;k<=n;k++){
for(int g=;g<=n;++g){
if(a[k][g]==)printf(" ");
else printf("%-4d",a[k][g]);
}
printf("\n");
}
}
else{//偶数
for(int k=;k<=n/;++k){
i=j=k;border=n-k+;
while(i<=border){a[i][j]=m++;i++;}
i--;j++;
while(j<=border){a[i][j]=m++;j++;}
}
for(int k=;k<=n;++k)a[][n]+=a[k][k];
for(int g=;g<=n;++g){
if(a[][g]==)printf(" ");
else{
if(g!=n)printf("%-4d",a[][g]);
else printf("%d\n",a[][g]);//n为偶数的时候右上角这个值后面不能有空格
}
}
for(int k=;k<=n;k++){
for(int g=;g<=k;++g)
printf("%-4d",a[k][g]);//其余每行最后一个数字+空格共占4位
printf("\n");
}
}
}
return ;
}
ACM_三角形蛇形矩阵的更多相关文章
- ACM_蛇形矩阵
蛇行矩阵 Time Limit: 4000/2000ms (Java/Others) Problem Description: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. Input: ...
- js实现蛇形矩阵
参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我 ...
- 【面试】输出"蛇形"矩阵
一.题目描述 腾讯实习在线笔试的一道题目. 根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下.输入n,输出(n * n)阶矩阵,满足由外到内依次增大. 如: 输入 ...
- c++实现蛇形矩阵总结
蛇形矩阵,百度了一下,是这么一个东西: 像一条蛇一样依次递增. 我想,竟然做了螺旋矩阵,那做一下这个吧.在之前的螺旋矩阵的main函数基础上,写个函数接口就行了,这一次做的很快,但是这个矩阵感觉比螺旋 ...
- wikioi 1160 蛇形矩阵
/*======================================================================== 1160 蛇形矩阵 题目描述 Descriptio ...
- EOJ3536 求蛇形矩阵每一行的和---找规律
题目链接: https://acm.ecnu.edu.cn/problem/3536/ 题目大意: 求蛇形矩阵的每一行的和,数据范围n<=200000. 思路: 由于n数据较大,所以感觉应该是需 ...
- Java编码 蛇形矩阵的构建与遍历输出
一.蛇形矩阵的构建,并按行输出 例: 输入:n, 生成n*n的蛇形矩阵 1 2 3 8 9 4 7 6 5 输出:1 2 3 8 9 4 7 6 5 java编码 public static void ...
- c++打印蛇形矩阵
一个m*n的矩阵里按照下图形式填充,最后形成的矩阵即为蛇形矩阵,下图是m=4, n =5时的蛇形矩阵: 方法一:逐层循环 #include <iostream> using namespa ...
- EOJ 3.30 B. 蛇形矩阵【找规律/待补】
[链接]:https://acm.ecnu.edu.cn/contest/59/problem/B/ B. 蛇形矩阵 Time limit per test: 2.0 seconds Memory l ...
随机推荐
- LINUX-文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消
ls -lh 显示权限 ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 chmod ugo+rwx directory1 设置目录的所有人(u).群组(g)以及其他人(o ...
- Windows窗口创建的具体步骤
/*实现窗口创建的六步骤:第一步:创建入口函数WinMain第二步:注册窗口类第三部:实现回调函数的功能第四步:显示窗口第五步:更新窗口第六步:消息循环*/ #include "stdafx ...
- UVA 12686 Trending Topic
Trending Topic Time limit: 1.000 seconds Imagine you are in the hiring process for a company whose p ...
- 从一行代码开始,浅谈python字符串格式化
今天看到了一行这样的代码: boundary = '%.32x' % random.randint(0, 256**16) 我知道这是一个生成格式化字符串的语句,它将随机生成的一个32位16进制数,将 ...
- jQuery对象是怎么创建的
一.jQuery源码 在jQuery中,$是jQuery的别名,执行“$()”就是执行“jQuery()”,执行“$()”返回的是一个jQuery对象,在源码中,它是这样定义的: ... var jQ ...
- codeforces gym 100357 K (表达式 模拟)
题目大意 将一个含有+,-,^,()的表达式按照运算顺序转换成树状的形式. 解题分析 用递归的方式来处理表达式,首先直接去掉两边的括号(如果不止一对全部去光),然后找出不在括号内且优先级最低的符号.如 ...
- QT .pro文件的学习收获
1. 载pro文件预定义宏: CONFIG(debug,debug|release){ DEFINES+=__DEBUG__ }else{ DEFINES+=__RELEASE__ macx:DEST ...
- 交友app
编辑注记:这是由译者 han_qi 翻译纽约客的一篇文章,从女性的角度描写了交友产品的用户体验及需求,值得广大产品经理深入研究,文章略长,但值得深读.原文<Overwhelmed and Cre ...
- zoj——3624 Count Path Pair
Count Path Pair Time Limit: 3 Seconds Memory Limit: 65536 KB You are given four positive intege ...
- 《深入理解PHP内核》
http://www.php-internals.com/ http://www.cnblogs.com/zcy_soft/category/252731.html