分享

算法创作|跟奥巴马一起编程

 算法与编程之美 2021-03-22

问题描述

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝计算机科学教育周正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

输入:输入在一行中给出正方形边长 N3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。

输出:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

解决方案

首先根据题意,将边长与字符要输入在同一行,题意中的四舍五入,先用if函数对a进行判定,有余数就要进位,在对第二行以后的空格进行计算时,要注意有两个空格自动输出,在列出算法时注意减去的空格数目。

a ,c = input().split()#a,c输入在同一行

a = int(a)

if a%2!=0:#判断是否进位

     b = a//2+1

else:

     b = a//2

print(a*c)#正方形的上边长

for i in range(0, b-2):#对列数进行一定的限制进行循环

     print(c,' '*(a-4),c)#有两个空格自动输出,所以减4

 print(a*c)#正方形的下边长

运行结果:

结语

文本使用了if函数进行判断和for循环,“画”出类似正方形的排列,在最开始的时候忽略了题意中的四舍五入,导致漏掉了一定的限制条件,在对中间空格数进行确定时,经过不断的试错,找出了其规律,还需对循环进行不断练习,后续将进一步对算法的题进行研究,对蓝桥杯的一些题目进行研究.

主编:欧洋

作者:彭诚、严洁、张淑娟

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多