ps:WA了好多次...因为首先是n=1的情况,其次是中心花色和外花色,中心花色也有可能是最外层花色。。。。很无语。
然后就是格式问题咯。
代码
#include "stdio.h"
#include "string.h"
void GG(int n,char a,char b);
void pri(char a);
int main(){
int i,j,n,ncase=;
char a,b;
while(~scanf("%d %c %c",&n,&a,&b)){
if(ncase++) printf("\n");
if(n==){
printf("%c\n",a);
continue; }
if((n/+)%==){
GG(n,a,b);
}
else{
GG(n,b,a);
}
}
return ;
}
void GG(int n,char a,char b){
int i,j;
for(i=;i<=n/+;i++){
if(i==){
printf(" ");
for(j=;j<=n-;j++) pri(b);
printf(" \n");
}
else{
for(j=;j<=n;j++){
if(j>=i && n-j+>=i){
if(i%==)
pri(a);
else
pri(b);
}
else{
if(j%==){
if(j==n){
pri(a);
printf("\n");
continue;
}
pri(a);
}
else{
if(j==n){
pri(b);
printf("\n");
continue;
}
pri(b);
}
}
}
}
}
for(i=n-(n/+)+;i<=n;i++){
if(i==n){
printf(" ");
for(j=;j<=n-;j++) pri(b);
printf(" \n");
}
else{
for(j=;j<=n;j++){
if(j<=i && n-i+<=j){
if(i%==)
pri(a);
else
pri(b);
}
else{
if(j%==){
if(j==n){
pri(a);
printf("\n");
continue;
}
pri(a);
}
else{
if(j==n){
pri(b);
printf("\n");
continue;
}
pri(b);
}
}
}
}
} }
void pri(char a){
printf("%c",a);
}