解题思路:
本题的关键在于要理解题中的“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分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复