【c++】蛇形矩阵

来源:互联网 发布:阿里的云服务器机房 编辑:程序博客网 时间:2024/05/05 17:43

题目说明
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
样例输入:

5

样例输出:

1 3 6 10 152 5 9 144 8 137 1211

程序代码1:

#include<iostream>using namespace std;#define max 100int main(){    int N;    cin>>N;    int num[max][max];    num[0][0]=1;    for(int i=1;i<N;i++)    {        num[i][0]=num[i-1][0]+i;    }    for(int j=1;j<N;j++)        for(int i=0;i<N-j;i++)        {            num[i][j]=num[i+1][j-1]+1;        }    for(int i=0;i<N;i++)        {            for(int j=0;j<N-i;j++)                {                    if(j==N-i-1)                        cout<<num[i][j];                    else                        cout<<num[i][j]<<' ';                   }            cout<<endl;                 }    return 0;}

上面这种方法是先求出第一列的各个元素值,也可以先求第一行的元素值。

程序代码2:

#include<iostream>  #define max 100  using namespace std;  int main()  {      int f[max][max]={0};      int k,i,j,p=1;      int  n;      cin>>n;      for(i=0;i<n;i++)      {          for(j=i,k=0;j>=0&&k<=i;j--,k++)          {              f[j][k]=p;              p+=1;          }      }      for(i=0;i<n;i++)      {          for(j=0;j<n-i-1;j++)              cout<<f[i][j]<<" ";          cout<<f[i][j];          cout<<endl;      }      return 0;}  
0 0
原创粉丝点击