解题思路:
本题的关键在于要理解题中的“3层十字架”是什么意思,然后我们通过观察图像来得到它的排布规律
注意事项:
1.十字架指的是由“.”构成的空白部分;
2.图像的排布规律推荐从一层十字架看,然后再看看多层是怎么在一层的基础上叠加形成的;并且我们要格外注意的是每一行的排列规律
3.如下为1-3层对应的图像(为了观看方便我让每个字符中间都加了一个空格以达到正方形的效果)
参考代码:
#include<stdio.h>
void waiwei();
void waiwei2();
int main()
{
int n;
scanf("%d",&n);
for(int i=n-1;i>=-1;--i)
{
for(int j=n-1-i-1;j>0;--j) waiwei();
if(i==n-1) printf("..");
else printf("$$$.");
for(int j=5+4*i;j>0;--j) printf("$");
if(i==n-1) printf("..");
else printf(".$$$");
for(int j=n-1-i-1;j>0;--j) waiwei2();
puts("");//No.1
for(int j=n-1-i;j>0;--j) waiwei();
printf("..");
if(i!=-1)
{
printf("$");
for(int j=5+4*i-2;j>0;--j) printf(".");
printf("$");
}
else printf("$");
printf("..");
for(int j=n-1-i;j>0;--j) waiwei2();
puts("");//No.2
}
for(int i=n;i>0;--i) waiwei();
printf("$$$$$");
for(int i=n;i>0;--i) waiwei2();
puts(""); //middle
for(int i=-1;i<=n-1;++i)
{
for(int j=n-1-i;j>0;--j) waiwei();
printf("..");
if(i!=-1)
{
printf("$");
for(int j=5+4*i-2;j>0;--j) printf(".");
printf("$");
}
else printf("$");
printf("..");
for(int j=n-1-i;j>0;--j) waiwei2();
puts("");//No.2
for(int j=n-1-i-1;j>0;--j) waiwei();
if(i==n-1) printf("..");
else printf("$$$.");
for(int j=5+4*i;j>0;--j) printf("$");
if(i==n-1) printf("..");
else printf(".$$$");
for(int j=n-1-i-1;j>0;--j) waiwei2();
puts("");//No.1
}
return 0;
}
void waiwei()
{
printf("$.");
}
void waiwei2()
{
printf(".$");
}
0.0分
3 人评分