蓝桥杯蛇形矩阵

237 阅读1分钟

蛇形矩阵

题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 输入 本题有多组数据,每组数据由一个正整数N组成。(N不大于100) 输出 对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。 样例输入 5

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

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()///WJHNB
{
    int n,i,j;
    while(~scanf("%d",&n))///多实例测试
    {
        int k=0,g=1;///k是为了控制每行,相邻元素之间的递增关系,g为了储存f的值,g赋初值为了获得第一个1
        for(i=0;i<n;i++)///控制行数
        {
            int f=1,a=2;///f为控制输出元素
            a=k+a;///这里的a为每行前两个元素之间的递增关系
            f=g+k;///控制第一列的递增关系。
            g=f;///这里就是为了储存f的值,防止被初始化,控制第一列元素之间的递增关系
            k++;///每行相邻元素递增
            for(j=0;j<n-i;j++)///控制每行的元素列数
            {
                printf("%d ",f);
                f=f+a;
                a++;
            }
            printf("\n");///换行


        }
    }
}
///n为每组数据的行数和列数
///i为行数控制
///j为列数控制
///f为输出变量
///a,k为控制每行相邻元素的必要组成部分
///g为控制第一列相邻元素递增关系


运行结果如下: 在这里插入图片描述