专栏名称: Crossin的编程教室
编程世界的新手村。 这里有可能是最简单的 Python 入门教程。 每天5分钟,轻松学编程。
目录
相关文章推荐
HR新逻辑  ·  9月24日开营!职位体系与任职资格构建! ·  5 天前  
HR新逻辑  ·  20薪,京东又加薪...... ·  6 天前  
清华经管学院职业发展中心  ·  招聘 | ... ·  6 天前  
51好读  ›  专栏  ›  Crossin的编程教室

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

Crossin的编程教室  · 公众号  ·  · 2017-08-04 13:34

正文

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

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

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 实现



欢迎加入

Crossin的编程教室

crossincode.com

读者交流QQ群:660296565

微信请加 crossin123 按提示入群


  请把我们分享给身边爱学习的小伙伴 :)  


点击左下角“阅读原文”,查看更多学习资源