1 条题解

  • 0
    @ 2024-12-24 9:59:27

    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;
    }
    
    

    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;
    }
    
    
    • 1

    信息

    ID
    1537
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者