2014年蓝桥杯预赛第五题打印图形
《你的五年职业规划》- 以五年为周期的个人职业蓝图 #生活知识# #生活指南# #职场建议# #职业规划书籍#
标题:打印图形
小明在X星球的城堡中发现了如下图形和文字:
#define N 70
void f(char a[][N], int rank, int row, int col)
{
if(rank==1){
a[row][col] = '*';
return;
}
int w = 1;
int i;
for(i=0; i<rank-1; i++) w *= 2;
____________________________________________;
f(a, rank-1, row+w/2, col);
f(a, rank-1, row+w/2, col+w);
}
int main()
{
char a[N][N];
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++) a[i][j] = ' ';
f(a,6,0,0);
for(i=0; i<N; i++){
for(j=0; j<N; j++) printf("%c",a[i][j]);
printf("\n");
}
return 0;
}
请仔细分析程序逻辑,填写缺失代码部分。
解题思路:各以观察出rank = n的三角形由三个rank = n-1的三角形组成,所给程序也是以递归思路写的,已看出填空下面两条语句,就是生成rank-1的三角形,所以填空也是生成一个rank-1大小的三角形,不同的是三个三角形的位置,下面两个三角形的row位置是一样的,说明是底层两个三角形,填空中应该是上层居中的三角形,位置规律易寻得位(row, col+w/2)
#include<iostream>
#include<cstdio>
#define N 70
void f(char a[][N], int rank, int row, int col){
if(rank == 1){
a[row][col] = '*';
return;
}
int w = 1;
int i;
for(int i=0; i<rank-1; ++i)w *= 2;
f(a, rank-1, row, col+w/2);
f(a, rank-1, row+w/2, col);
f(a, rank-1, row+w/2, col+w);
}
int main()
{
char a[N][N];
int i, j;
for(i=0; i<N; ++i){
for(j=0; j<N; ++j){
a[i][j]=' ';
}
}
f(a, 6, 0, 0);
for(i=0; i<N; ++i){
for(j=0; j<N; ++j){
printf("%c", a[i][j]);
}
printf("\n");
}
}
网址:2014年蓝桥杯预赛第五题打印图形 https://www.yuejiaxmz.com/news/view/1008036
相关内容
蓝桥杯算法备战:全面提升刷题技巧测控系蓝居杯创新设计大赛.ppt
文三数字生活街区首届“勇电杯”3D打印创新设计大赛
2018年第五届高校环保科技创意设计大赛.doc
安徽省第九届工业设计大赛 “绿色生活 · 龙利得杯”印刷包装创新创意设计专项赛征集公告
第一届全国大学生人力资源管理知识技能竞赛(精创教育杯)参赛感言——辽宁大学精选五篇(专业版)
第十八届全国大学生信息安全竞赛(创新实践能力赛)暨第二届“长城杯”铁人三项赛(防护赛)即将举行
第十届“泽耀杯”东华大学大学生节能环保创新大赛参赛通知
2023第二届″好太太杯″全国校园创意设计大赛
关于发布2014年国家重点环境保护实用技术及示范工程名录(第一批)的通知