您的位置:首页 > 编程语言 > C语言/C++

【c++】蛇形矩阵

2016-04-11 22:26 447 查看
题目说明

蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

样例输入:

5


样例输出:

1 3 6 10 15
2 5 9 14
4 8 13
7 12
11


程序代码1:

#include<iostream>
using namespace std;
#define max 100
int 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: