zoukankan      html  css  js  c++  java
  • 蛇形矩阵(二)

    蛇形矩阵

    【问题描述】

    蛇形矩阵是由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 a[1010][1010]={0};         //将矩阵的初值置为0;
    int main()
    {
        int i=0,j=0,n;
        int k=0;
        int x,y;
        cin>>n;
        int t=1;
        a[0][0]=t;           //矩阵的第一行第一列是1;
        while(t<=n*(n+1)/2)        //上三角矩阵的元素个数为(n+1)*n/2;
        {
            a[++k][0]=++t;  //置数给每一行的第一个位置;
            i=k;
            j=0;
            while(i<n&&(j+1)<n&&!a[i-1][j+1])       //判断一下i是否超出了n的范围,因为上述的a[++k][0]=++t;其实将所有的第一列都执行了,这里的i<n只是截取我们所需要的而已;
                a[--i][++j]=++t;          //++ --都是前;
            
        }
        for(x=0;x<n;x++)
        {
            cout<<endl;
            for(y=0;y<n;y++)
            {
                if(a[x][y])
                    cout<<a[x][y]<<" ";
            }
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    libjpeg的问题
    CURLcode的定义
    libcurl断点下载遇到的问题
    itunes connect
    node.js模块的坑
    itunes connect 改版后无法访问的处理办法
    cocos2d-x 在输入文字时点击语音crash
    Windows下LuaJIT的编译和使用
    多个so中模板单例的多次实例化
    多线程中避免使用信号量
  • 原文地址:https://www.cnblogs.com/Guhongying/p/9079055.html
Copyright © 2011-2022 走看看