ACM编程比赛入门题目之蛇形矩阵

蛇行矩阵
【问题描述】
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

【要求】
【数据输入】本题有多组数据,每组数据由一个正整数N组成。(N不大于100)

【数据输出】对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。

【样例输入】
5

【样例输出】
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11

代码:

#include <iostream>
using namespace std;
int main()
{
    int N;
    while (cin>>N&&N>=1&&N<=100)
    {
        int a[N][N],i,j;
        a[0][0]=1;
        for (i=0; i<N; ++i)
        {
            a[i+1][0]=a[i][0]+i+1;
        }
        for (j=1; j<N; ++j)
        {
            for (i=0; i<N-j; ++i)
            {

                a[i][j]=a[i+1][j-1]+1;
            }
        }
        for (i=0; i<N; ++i)
        {
            for (j=0; j<N-i; ++j)
            {
                if (j<N-i-1)
                    cout<<a[i][j]<<" ";
                else
                    cout<<a[i][j];
            }
            cout<<endl;
        }
    }
    return 0;
}

运行结果:

学习心得:

看到题目有些纳闷了,不是矩阵么,怎么要做的是三角形,不过这不是重点,能做题目就行;

ACM的题目果然很有难度,这是我看到的我觉得最简单的一道题了,继续加油。

时间: 2024-10-25 17:17:36

ACM编程比赛入门题目之蛇形矩阵的相关文章

ACM编程比赛入门题目之敲七

敲七 [问题描述] 输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...) [要求] [数据输入]一个整数N.(N不大于30000) [数据输出]从小到大排列的不大于N的与7有关的数字,每行一个. [样例输入] 20 [样例输出] 7 14 17 代码: #include <iostream> using namespace std; int main() { int N,i; while (cin>>N&&N>=1&am

ACM编程比赛入门题目之统计同成绩学生人数

统计同成绩学生人数: [问题描述] 读入N名学生的成绩,将获得某一给定分数的学生人数输出. [要求] [数据输入]测试输入包含若干测试用例,每个测试用例的格式为 第1行:N 第2行:N名学生的成绩,相邻两数字用一个空格间隔. 第3行:给定分数 当读到N=0时输入结束.其中N不超过1000,成绩分数为(包含)0到100之间的一个整数. [数据输出]对每个测试用例,将获得给定分数的学生人数输出. [样例输出] 3 80 60 90 60 2 85 66 0 5 60 75 90 55 75 75 0

华为OJ——蛇形矩阵

题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void GetResult(int Num, char * pResult); 输入参数: int Num:输入的正整数N 输出参数: int * pResult:指向存放蛇形矩阵的字符串指针 指针指向的内存区域保证有效 返回值: void 输入描述: 输入正整数N(N不大于100) 输出描述: 输出一个N

CODE[VS]1160 蛇形矩阵

题目描述 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 36

C语言算法(1)-蛇形矩阵

题目来自:C语言网 题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 输入 本题有多组数据,每组数据由一个正整数N组成.(N不大于100) 输出 对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11我在做这道题的时候想到是用数组来做,但是用数组其实是比较繁琐的.随即我就想出了另一种算法,是不用数组的解析 2 3

蛇形矩阵-题解

题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 输入 本题有多组数据,每组数据由一个正整数N组成.(N不大于100) 输出 对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 用二维数组: #include <iostream> #include <cstdio> using namespac

专访北京航空航天大学黎健成:我和编程比赛

前言: 在对黎健成采访的过程中,他始终强调自己是一名普通的学生,不能和曹鹏博士那样的刷题大牛相比,他接受采访是为了和更多的同学交流探讨.笔者认为,一个在各类活动中能够取得优异成绩的学生,一定在课余时间付出大量时间进行练习和复习,大量刷题和阅读技术书籍."天道酬勤",虽然天资重要,但是更离不开勤奋与努力.黎健成认为自己取得成绩,更多是通过努力付出得到的. 黎健成,北京航空航天大学软件工程专业的大四学生.除了正常上课学习外,积极参加课外竞赛活动,在竞赛活动中不断学习成长.曾获得ACM-IC

(水题)蛇形矩阵

1160 蛇形矩阵 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和. 输入描述 Input Description n(即n行n列) 输出描述 Output Description n+1行,n行为组成的矩阵,最后一行为

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京