三角形蛇形矩阵

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_三角形蛇形矩阵的更多相关文章

  1. ACM_蛇形矩阵

    蛇行矩阵 Time Limit: 4000/2000ms (Java/Others) Problem Description: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. Input: ...

  2. js实现蛇形矩阵

    参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我 ...

  3. 【面试】输出"蛇形"矩阵

    一.题目描述 腾讯实习在线笔试的一道题目. 根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下.输入n,输出(n * n)阶矩阵,满足由外到内依次增大. 如: 输入 ...

  4. c++实现蛇形矩阵总结

    蛇形矩阵,百度了一下,是这么一个东西: 像一条蛇一样依次递增. 我想,竟然做了螺旋矩阵,那做一下这个吧.在之前的螺旋矩阵的main函数基础上,写个函数接口就行了,这一次做的很快,但是这个矩阵感觉比螺旋 ...

  5. wikioi 1160 蛇形矩阵

    /*======================================================================== 1160 蛇形矩阵 题目描述 Descriptio ...

  6. EOJ3536 求蛇形矩阵每一行的和---找规律

    题目链接: https://acm.ecnu.edu.cn/problem/3536/ 题目大意: 求蛇形矩阵的每一行的和,数据范围n<=200000. 思路: 由于n数据较大,所以感觉应该是需 ...

  7. 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 ...

  8. c++打印蛇形矩阵

    一个m*n的矩阵里按照下图形式填充,最后形成的矩阵即为蛇形矩阵,下图是m=4, n =5时的蛇形矩阵: 方法一:逐层循环 #include <iostream> using namespa ...

  9. EOJ 3.30 B. 蛇形矩阵【找规律/待补】

    [链接]:https://acm.ecnu.edu.cn/contest/59/problem/B/ B. 蛇形矩阵 Time limit per test: 2.0 seconds Memory l ...

随机推荐

  1. python爬虫28 | 你爬下的数据不分析一波可就亏了啊,使用python进行数据可视化

    通过这段时间 小帅b教你从抓包开始 到数据爬取 到数据解析 再到数据存储 相信你已经能抓取大部分你想爬取的网站数据了 恭喜恭喜 但是 数据抓取下来 要好好分析一波 最好的方式就是把数据进行可视化 这样 ...

  2. [bzoj1867][Noi1999][钉子和小球] (动态规划)

    Description Input 第1行为整数n(2<=n<=50)和m(0<=m<=n).以下n行依次为木板上从上至下n行钉子的信息,每行中‘*’表示钉子还在,‘.’表示钉 ...

  3. [K/3Cloud]如何解决K3Cloud 2.0审批流提交时报“队列不存在,或您没有足够的权限执行该操……

    按照图上的操作即可解决不可提交的问题,但如果应用服务器是部署在域环境下,应该不会出错,这是微软support上说的

  4. linux下安装并配置vim

    1.安装:sudo apt-get install vim-gtk  安装好后vim,并按“tab”键,可以看到vim的存在,则安装好2.设置更加人性化:sudo vim /etc/vim/vimrc ...

  5. [bzoj 1047][HAOI2007]理想正方形(单调队列)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1047 分析: 第一感觉二维线段树当然没问题但是挺慢的. 注意到要求的正方形形中的最大最小边长是 ...

  6. tomcat这种http服务器,是能接收到客户端的断开信息的,并能打印出来

    如,tomcat的运行文件 DEBUG -- CLOSE BY CLIENT STACK TRACE

  7. git 手动操作

    git 手动操作 以下所有的情况都需要在上面那个目录下: 查看改动: git status // 所有改动都在这里. 提交代码: git add <file_name> // 把代码放到 ...

  8. swift 2.0语法 元组

    import UIKit /*: 元祖 * 可以将多个值保存在一起 * 格式: (数值1, 数值2, 数值3) * 特点: 元祖可以保存不同数据类型的值 * 用途: 在C/OC中如果一个函数想返回多个 ...

  9. 【转】linux 远程桌面工具NX

    1.在linux服务器上需要安装3个文件,下载地址为: http://www.nomachine.com/download-package.php?Prod_Id=1977 nxclient-3.4. ...

  10. ES6 一些常用使用

    //1.解构数组 let arr1 = ['apple', 'coffee', 'cake']; let [fruit, drink, dessert] = arr1; console.log(fru ...