http://acm.hdu.edu.cn/showproblem.php?pid=2074水題一個,要注意的地方很多:
1、從里往外的,要注意最外層的字符與n(n/2的奇偶性)有關;
2、四個角都有空格,主要是后面兩個容易忽視;
3、Presentation Error:空行;
模擬找出兩個字符在行方向上的奇偶性關系,mod 2即可方便處理:


#include<stdio.h>
int main()
{
int n,i,j,count,flag;
char ch[3];
flag=-1;
while (scanf("%d %c %c",&n,&ch[0],&ch[1])==3)
{
n=n/2;
if (flag!=-1)
printf("\n");
flag=0;
if (n==0)
{
printf("%c\n",ch[0]);continue;
}
if (n%2==1)
{
ch[2]=ch[0];
ch[0]=ch[1];
ch[1]=ch[2];
}
printf(" ");
for (i=1;i<2*n;i++)
printf("%c",ch[0]);
printf(" \n");
for (i=0;i<2*n-1;i++)
{
if (i<n)
count=i+1;
else
count=2*n-i-1;
;
for (j=0;j<=2*n;j++)
{
if (j<count)
printf("%c",ch[j%2]);
else
if (2*n-j<count)
printf("%c",ch[j%2]);
else
printf("%c",ch[count%2]);
}
printf("\n");
}
printf(" ");
for (i=1;i<2*n;i++)
printf("%c",ch[0]);
printf(" \n");
}
}
還有找出行列函數(shù)關系的打表處理
ps:字符讀入,糾結死了,這個題提交了14次!!!!!!!!