首页 > 代码库 > oj---九度oj---1432
oj---九度oj---1432
先排版,再输出。
先定位中心坐标,然后定位左上角坐标,然后开始排版,四边同步。左上角起始为(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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。