目的是抛砖引玉,直接抄骗别人也是骗自己。
#include<stdio.h>
#include<string.h>
#include<math.h>
char r[8]={'A','B','C','D','E','F','G'};
char ada[4000][4000];
int main()
{
int t;
scanf("%d",&t);
for(int q=0;q<t;q++){
int n;
scanf("%d",&n);
int x=n;
for(int o=1;o<x+1;o++)
for(int u=1;u<x+1;u++)
ada[o][u]=' ';
for(int o=1;o<x+1;o++){
ada[o][1]=r[0];
ada[o][x]=r[0];}
for(int o=1;o<x+1;o++){
ada[1][o]=r[0];
ada[x][o]=r[0];}
int pp=1;
int y=x;
int oo=1;
int nn=n;
int kk=0;
while (nn) {
nn /= 3;
kk++;
}
kk-=2;
nn = n;
int flg=0;
int nnn=nn;
int zm=1;
while (kk) {
int uu=0;
while(uu<=n){
uu+=pow(3,kk);
for(int o=0;o<x+1;o++){
if(ada[o][uu]==' ')ada[o][uu]=r[zm];
if(ada[o][uu+1]==' ')ada[o][uu+1]=r[zm];}
for(int o=0;o<x+1;o++){
if(ada[uu][o]==' ')ada[uu][o]=r[zm];
if(ada[uu+1][o]==' ')ada[uu+1][o]=r[zm];
}
}
kk--;
zm++;
}
for(int o=1;o<x+1;o++){
for(int u=1;u<x+1;u++)
printf("%c",ada[o][u]);
printf("\n");}
pp=0;
if(q!=t-1)printf("\n");
}
return 0;
}
ADA是个特能折腾的小女孩,她的爸爸有时候想清净一点都不成。最近ADA迷上画图,她爸爸心生一计,让她去画一个正方形,正方形边长n为3的t次幂 1 <= t <= 7。
画图规则如下:
(1)第一个画的正方形其边以大写字母’A’填充,正方形里面不需要填充。
(2)如果规则一画的正方形边长大于3,则将其分成边长为n/3的9个小正方形,每个小正方形继续画图,如果画的地方如果已经存在字符,则保持不变。如果不存在字符,则一律以大写字母’B’填充。和规则二相同的地方是,只填充边,不填充里面部分。
(3)如果规则二得到的9个小正方形边长依然大于3,对这9个小正方形重复规则二的动作,只是填充字符一律使用’C ’, 这样能得到81个小正方形. 如果81个小正方形的边长依然不为3, 重复上面类似行为(注意填充字符变成下一个大写字母),直至剖分成的小正方形边长为3.
这个问题对ADA来说显然太难了,但是我想你行的,试一试吧.
输入
第一行是一个整数T,表示有多少组数据。
随后有T行,每一行包括一个整数n,代表刚开始画的正方形边长.
输出
每个整数n对应一个正方形输出,正方形中空的位置用空格符号.如果有多组测试数据,相邻两组之间有一空行隔开,注意最后一组后面不要有空行.
样例输入 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">2
3
27
</span></span></span></span>
样例输出 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">AAA
A A
AAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA
A CC CC BB CC CC BB CC CC A
ACCCCCCCBBCCCCCCCBBCCCCCCCA
ACCCCCCCBBCCCCCCCBBCCCCCCCA
A CC CC BB CC CC BB CC CC A
ACCCCCCCBBCCCCCCCBBCCCCCCCA
ACCCCCCCBBCCCCCCCBBCCCCCCCA
A CC CC BB CC CC BB CC CC A
ABBBBBBBBBBBBBBBBBBBBBBBBBA
ABBBBBBBBBBBBBBBBBBBBBBBBBA
A CC CC BB CC CC BB CC CC A
ACCCCCCCBBCCCCCCCBBCCCCCCCA
ACCCCCCCBBCCCCCCCBBCCCCCCCA
A CC CC BB CC CC BB CC CC A
ACCCCCCCBBCCCCCCCBBCCCCCCCA
ACCCCCCCBBCCCCCCCBBCCCCCCCA
A CC CC BB CC CC BB CC CC A
ABBBBBBBBBBBBBBBBBBBBBBBBBA
ABBBBBBBBBBBBBBBBBBBBBBBBBA
A CC CC BB CC CC BB CC CC A
ACCCCCCCBBCCCCCCCBBCCCCCCCA
ACCCCCCCBBCCCCCCCBBCCCCCCCA
A CC CC BB CC CC BB CC CC A
ACCCCCCCBBCCCCCCCBBCCCCCCCA
ACCCCCCCBBCCCCCCCBBCCCCCCCA
A CC CC BB CC CC BB CC CC A
AAAAAAAAAAAAAAAAAAAAAAAAAAA</span></span></span></span>