【每周一坑】阿姆斯特朗数

简介: 提交代码可以使用 paste.ubuntu.com 或 codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。

这是一个很经典的编程练习题:


如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋数、自幂数)。


407 = 43 + 03 + 73 就是一个阿姆斯特朗数。


写一段代码,输出 1000 以内的所有阿姆斯特朗数。


附加题:输入一个正整数,输出距离它最近的阿姆斯特朗数。


期待各位同学提交解答。


提交代码可以使用 paste.ubuntu.com 或 codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。


往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。


【解答】美队盾牌


turtle 库相关介绍参见:【编程课堂】海龟作图


要注意的是,画图完成后需要调用 turtle.done(),否则程序就直接退出了。


给一份参考解答:


# coding=utf-8
import turtle
import time
import math
def shield():
    # 设置背景
    turtle.bgcolor('#010101')
    # 设置速度
    turtle.speed(10)
    # 依次填充同心圆
    fill_circle('#FF0000', 230)
    fill_circle('#FFFFFF', 178)
    fill_circle('#FF0000', 129)
    fill_circle('#0000FF', 75)
    # 完成五角星
    draw_five('#FFFFFF', 75)
    turtle.done()
# 画圆线
def draw_circle(radium):
    turtle.home()
    turtle.penup()
    turtle.setheading(0)
    turtle.forward(radium)
    turtle.pendown()
    turtle.setheading(90)
    turtle.circle(radium)
    turtle.penup()
    turtle.home()
# 填充圆环
def fill_circle(color, r1):
    turtle.color(color, color)
    turtle.fillcolor()
    turtle.begin_fill()
    draw_circle(r1)
    turtle.end_fill()
# 画并填充五角星
def draw_five(color, radium):
    turtle.home()
    turtle.penup()
    turtle.setheading(90)
    turtle.forward(radium)
    turtle.setheading(288)
    turtle.pendown()
    long_side = (math.sin(math.radians(36))*radium)/math.sin(math.radians(126))
    turtle.color(color, color)
    turtle.fillcolor()
    turtle.begin_fill()
    for i in range(10):
        turtle.forward(long_side)
        if i % 2 == 0:
            turtle.left(72)
        else:
            turtle.right(144)
    turtle.end_fill()
    turtle.penup()
if __name__ == '__main__':
    shield()


推荐 @strawhat 同学的答案,思路清晰,程序中各部分功能独立,非常好理解:


http://pastebin.ubuntu.com/25147394/


同时也给出其他两位同学的答案:


@疯琴:


https://github.com/YngwieWang/python_practice/blob/master/AmericanCaptain.py


@xuxiaojiao:


http://pastebin.ubuntu.com/25160891/


『码上行动』在线学习班正在开放中,详情请回复 码上行动 查看

近期文章推荐阅读:

编程新手:看懂很多示例,却依然写不好一个程序

喏,你们要的 PyCharm 快速上手指南

几个以前发过、回复过很多次、比较有用的学习资源

给伸手党的福利:Python 新手引导

如何用100行Python代码做出魔性声控游戏“八分音符酱”

数据分析:当赵雷唱民谣时他唱些什么?

一行代码扫出“敬业福”

我扒了杜蕾斯的微博

Python 爬虫爬取美剧网站

今天,你抢到票了吗?

爆款游戏《贪吃蛇大作战》的 Python 实现

相关文章
|
运维 Kubernetes Cloud Native
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(一)
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(一)
1808 0
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(一)
|
Ubuntu Linux
憨态可掬的牛——Linux上的Cowsay命令体验
Cowsay是一个有趣的命令行工具,在Linux系统中备受欢迎。它能让一个笑脸的小牛说出你输入的文本,为你的终端带来一些趣味和幽默。本文将介绍如何在Linux上安装、运行和使用Cowsay,以及一些有趣的用法和定制技巧。
1065 0
|
5月前
|
存储 JavaScript Java
2025版基于springboot的企业考勤管理系统
本系统基于Spring Boot、Vue与MySQL,实现企业考勤自动化管理,集成生物识别与GPS定位,支持多端操作与数据可视化,提升考勤准确性与管理效率,助力企业数字化转型。(239字)
|
传感器 安全 物联网
量子加密技术的应用领域有哪些?
量子加密技术的应用领域有哪些?
1145 59
|
Java Spring
ij社区版如何创建spring项目
如何在IntelliJ IDEA社区版中创建Spring项目,包括安装Spring Boot Helper插件的步骤和创建过程。
419 1
ij社区版如何创建spring项目
|
数据采集 安全 文件存储
NAS极速远程访问!贝锐花生壳推出飞牛fnOS专属内网穿透服务
贝锐花生壳与飞牛私有云fnOS合作,推出专属客户端及映射服务,实现3倍传输速率提升。用户只需在fnOS应用中心搜索“花生壳”,一键安装即可享受高速、稳定、安全的远程NAS访问体验。
1719 9
|
监控 网络协议 Unix
深入探索Linux的lsof命令
在Linux系统中,了解哪些文件被哪些进程打开对于系统管理和问题诊断是极其重要的。这正是`lsof`命令,即List Open Files,发挥其强大功能的场景。本文旨在详细介绍`lsof`的起源、底层原理、参数意义,常见用法,并详解其返回结果的每个字段含义。此外,我们将讨论在使用`lsof`命令时需要注意的事项。
|
Java Windows Spring
Spring Boot CMD 运行日志输出中文乱码
Spring Boot CMD 运行日志输出中文乱码
716 0
|
Linux 开发工具
蓝易云 - 在CentOS7/RHEL7上安装OpenSSL1.1.x教程
以上就是在CentOS7/RHEL7上安装OpenSSL 1.1.x的步骤。希望对你有所帮助。
1024 0
数学符号ln
ln在数学里表示的是以常数e(无理数,约等于2.71828...)为底的自然对数符号。即lnm=loge(m)其中,log (英语名词:logarithms)表示的是对数运算。当a^b=n时,也可表示为log(a)(n)=b。
4648 0