游客 Signup | Login
中文 | En

2075 - 特殊的三角形

有这样一种特殊的N阶的三角形,当N等于3和4时,矩阵如下:

请输出当为N时的三角形。

Input

输入有多组数据,每行输入一个正整数N,1<=N<=100

Output

按照给出的样例进行输出

Examples

Input

3

Output

1 2 6
3 5
4

Solution C

#include<stdio.h>
int main()
{
    int n,i,j,a[100][100],p,q,t,s;
    while(~scanf("%d",&n))
    {
        p=1; t=2; q=0; a[0][0]=1;
        while(p<n)
        {
            for(i=p;i>=0;--i)
                a[q++][i]=t++;
            p=0;
            if(q>=n)break;
            for(j=q;j>=0;--j)
                a[j][p++]=t++;
            q=0;
        }
        s=n;
        for(i=0;i<n;++i)
        {
            printf("%d",a[i][0]);
            for(j=1;j<s;++j)
                printf(" %d",a[i][j]);
            puts("");s--;
        }
    }
	return 0;
}

Solution C++

#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[102];
void fun()
{
    int i;
    a[1]=1;
    for(i=2;i<=103;i++)
      a[i]=a[i-1]+i;
}
int main()
{
    int t,i,j,k,l,m,n;
    int s[101][101];
    fun();
    while(cin>>n)
    {
        memset(s,0,sizeof(s));
        s[1][1]=1;
        m=2;k=2;i=1;
        while(m<=a[n])
        {
          for(j=i;k>=1 && m<=a[n];j++,k--)//斜向下
                s[j][k]=m++;
             for(k=k+1;j>=1 && m<=a[n];k++,j--)//斜向上
              s[j][k]=m++;
        }
        for(i=1;i<=n;i++)
        {
            cout<<s[i][1];
          for(j=2;j<=n;j++)
          if(s[i][j]!=0)
          {
            cout<<" "<<s[i][j];
          }
            cout<<endl;
        }
    }
	return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题