蛇形矩阵

作者在 2013-10-19 19:57:09 发布以下内容
Problem Description 

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

Input

输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组数据由一个正整数N组成。(N不大于100)

Output

对于每一组数据,输出一个N行的蛇形矩阵。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。

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




#include<iostream>
using namespace std;
int main()
{
 int t;cin>>t;
 for(int i=0;i<t;i++)
 {
 int a[100][100],k;
 cin>>k;
 int i,j,v=1;
 for(i=0;i<k;i++)
 {
 for(j=0;j<=i;j++)
 {
 a[i-j][j]=v++;
 }
 }
 for(i=0;i<k;i++)
 {
 for(j=0;i+j<k;j++)
 {
 if(j>0) cout<<" ";      (1)
 cout<<a[i][j];
 }
 cout<<endl;


(1)出我是这么考虑的,我把控制空格输出时,空格是在数字之前输出的,,所以,我只需想方设法去掉最前面的空格就算是完成输出了。而(1)出的目的就是把开始的空格去掉,当然还有一种方法就是空格输出时,最后面多一个空格,我们可以用相同的思想来设置输出的控制,
for(i=0;i<k;i++)
 {
 for(j=0;i+j<k;j++)
 {
 
 cout<<a[i][j];
 if(j!=k-i-1) cout<<" ";
 }
 cout<<endl;
这就是当空格是最后有多余时的输出。
默认分类 | 阅读 3141 次
文章评论,共0条
游客请输入验证码
浏览18798次
文章分类
最新评论