P402 二维数组

 

 

 

 

 

//蛇形方阵

#include<stdio.h>
int a[12][12];
int main(){
    int n,i,j,tot;
    scanf("%d",&n);
    for(a[i=1][j=1]=tot=1;tot<n*n;){
        if(j+1<=n)a[i][++j]=++tot;
        while(j-1>0&&i+1<=n&&!a[i+1][j-1])a[++i][--j]=++tot;
        if(i+1<=n)a[++i][j]=++tot;
        while(j+1<=n&&i-1>0&&!a[i-1][j+1])a[--i][++j]=++tot;
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)printf("%4d",a[i][j]);
        printf("\n");
    }
    return 0;
}

  

//1150 【基础】螺旋方阵

#include<cstdio>
#define UP(i,m,n) for(i=m;i<=n;i++)
#define DN(i,m,n) for(i=m;i>=n;i--)
int a[110][110];
int main(){
    int n,i,j,k,tot=0;
    scanf("%d",&n);
    UP(k,1,n/2){
        UP(j,k,n-k)a[k][j]=++tot;            //→
        UP(i,k,n-k)a[i][n-k+1]=++tot;        //↓
        DN(j,n-k+1,k+1)a[n-k+1][j]=++tot;    //←
        DN(i,n-k+1,k+1)a[i][k]=++tot;        //↑
    }
    if(n%2)a[n/2+1][n/2+1]=++tot;
    UP(i,1,n){
        UP(j,1,n)printf("%3d",a[i][j]);
        puts("");
    }
    return 0;
}

  

 

#include<cstdio>
#define UP(i,m,n) for(i=m;i<=n;i++)
#define DN(i,m,n) for(i=m;i>=n;i--)
int a[110][110];
int main(){
    int n,i,j,k,tot=0;
    scanf("%d",&n);
    UP(k,1,n/2){
        i=k;     UP(j,k,n-k)a[i][j]=++tot;
        j=n-k+1; UP(i,k,n-k)a[i][j]=++tot;
        i=n-k+1; DN(j,n-k+1,k+1)a[i][j]=++tot;
        j=k;     DN(i,n-k+1,k+1)a[i][j]=++tot;
    }
    if(n%2)a[n/2+1][n/2+1]=++tot;
    UP(i,1,n){
        UP(j,1,n)printf("%3d",a[i][j]);
        puts("");
    }
    return 0;
}

  

 

//codevs1160 蛇形矩阵

#include<cstdio>
#define UP(i,m,n) for(i=m;i<=n;i++)
#define DN(i,m,n) for(i=m;i>=n;i--)
int a[210][210];
int main(){
    int n,i,j,k,tot=0,m,s=0;
    scanf("%d",&n); m=n/2;
    a[0+m][0+m]=++tot;
    UP(k,1,m){
        j=k;     DN(i,k-1,-k)a[i+m][j+m]=++tot;
        i=-k;    DN(j,k-1,-k)a[i+m][j+m]=++tot;
        j=-k;    UP(i,-(k-1),k)a[i+m][j+m]=++tot;
        i=k;     UP(j,-(k-1),k)a[i+m][j+m]=++tot;
    }
    UP(i,0,n-1){
        UP(j,0,n-1)if(i==j || i+j==n-1)s+=a[i][j];
        UP(j,0,n-2)printf("%d ",a[i][j]);
        printf("%d\n",a[i][n-1]);
    }
    printf("%d\n",s);
    return 0;
}

  

 

posted @ 2016-04-25 21:05  codeisking  阅读(893)  评论(0)    收藏  举报