蛇行矩阵
时间限制: 1Sec 内存限制: 64MB 提交: 2830 解决: 1749
题目描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
输入
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
输出
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
解题思路
和回形取数有点像
把过程模拟出来就很简单了
输出的格式也需要注意一下
题不难,花了半个小时一次AC,,我给小白丢脸了,。。。。
完整代码
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int N;
cin>>N;
int temp=0;
int x=0,y,ans=0;
int num=2;//很重要
int nn[100][100];
nn[0][0]=1;
while(temp+1!=((N*N+N)/2) && x==0)
{
y=0;
x++;
ans+=x;
x=ans;
temp++;
nn[x][y] = num++;
while(x!=0)
{
x--;
y++;
temp++;
nn[x][y] = num++;
}
}
for(int i =0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
j==N-i-1 ? cout<<nn[i][j] :cout<<nn[i][j]<<" ";
}
i==N-1 ? cout<<"": cout<<endl;
}
return 0;
}