2014年蓝桥杯预赛第五题打印图形

发布时间:2025-05-21 18:30

《你的五年职业规划》- 以五年为周期的个人职业蓝图 #生活知识# #生活指南# #职场建议# #职业规划书籍#

标题:打印图形

    小明在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年国家重点环境保护实用技术及示范工程名录(第一批)的通知

随便看看