码迷,mamicode.com
首页 > 其他好文 > 详细

oj---九度oj---1432

时间:2017-06-24 21:48:34      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:pre   print   clu   坐标   bsp   log   scanf   can   while   

 

先排版,再输出。

先定位中心坐标,然后定位左上角坐标,然后开始排版,四边同步。左上角起始为(1,1) .

#include<cstdio>
char output[85][85];

int main(){
    int x,y;
    int n;
    char a,b;
    bool isfirst=1;
    while(scanf("%d %c %c",&n,&a,&b)==3){
        for(int size=1,num=1;size<=n;num++,size+=2){
            x=n/2+1-(num-1);
            y=x;
            char tmp=num%2==1?a:b;
            output[x][y]=tmp;//特判n==1 
            for(int i=0;i<=size-2;i++){
                output[x][y+i]=tmp;
                output[x+i+1][y]=tmp;
                output[x+i][y+size-1]=tmp;//四条边不重复。或者也可以多排一次,四条边允许重复 
                output[x+size-1][y+i+1]=tmp;
            }
        }
        if(n!=1){
            output[1][1]= ;
            output[1][n]= ;
            output[n][1]= ;
            output[n][n]= ;
        }
        if(isfirst)
            isfirst=0;
        else  printf("\n"); 
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                printf("%c",output[i][j]);
            }
            printf("\n");
        }
    
    }    
    return 0;
}

 

oj---九度oj---1432

标签:pre   print   clu   坐标   bsp   log   scanf   can   while   

原文地址:http://www.cnblogs.com/kprac/p/7074439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!