#include <iostream.h>
#include <stdio.h>
#define M 20
char a[M][M];
int fuback(int k,int n,char u)
{
int i;
if(k==0) u='T';
if(k==1) u='J';
for(i=k;i<n;i++)
{
a[k][i]=u;
a[i][k]=u;
a[i][n-1]=u;
a[n-1][i]=u;
}
if(k==1)u='0';
if(k!=((M+1)/2)){fuback(k+1,n-1,u+1);} //无论奇偶都执行到最里面的k!=((M+1)/2);
else return 0;
}
int main(int argc, char *argv[])
{
char ut='0';//初始化字符变量,全靠它
int nt=M;//宽度
int kt=0;//表示由内到外的层数
int h,j;
fuback(kt,nt,ut);//递归
for(h=0;h<M;h++)
{
for(j=0;j<M;j++)
{
printf("%c",a[h][j]);
printf(" ");
}
printf("\n");
}
return 0;
}
评论