"""
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",
因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
""" def answer1():
"""
正常for循环比较
:return:
"""
print("输出一", end=":")
for i in range(100, 1000):
a = i // 100
b = i % 100 // 10
c = i % 10
if i == a ** 3 + b ** 3 + c ** 3:
print(i, end=",") answer1() def answer2():
"""
逆向思维,有三个一位数组合成一个三位数
:return:
"""
print("\n输出二", end=":")
for i in range(1, 10):
for j in range(0, 10):
for k in range(0, 10):
if i ** 3 + j ** 3 + k ** 3 == i * 100 + j * 10 + k:
print(i * 100 + j * 10 + k, end=",") answer2() def answer3():
"""
通过类型转换来获取三位数的各位数值
:return:
"""
print("\n输出三", end=":")
for i in range(100, 1000):
s = str(i)
if pow(int(s[0]), 3) + pow(int(s[1]), 3) + pow(int(s[2]), 3) == i:
print(i, end=",") answer3() def answer4():
"""
领用divmod函数来计算
:return:
"""
print("\n输出四", end=":")
for i in range(100, 1000):
m = i
sumNum = 0
while m > 0:
m, n = divmod(m, 10)
sumNum += n ** 3
if sumNum == i:
print(i, end=",") answer4() def answer5():
"""
利用列表for if 用法来实现
:return:
"""
print("\n输出五", end=":")
L = [i for i in range(100, 1000) if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i]
print(L) answer5()

  

最新文章

  1. c# 生成SHA1加密字符串
  2. [游戏学习24] MFC 各种绘图 字体学习
  3. js常规日期格式处理、月历渲染、倒计时函数
  4. Atitit.guice3 ioc 最佳实践 o9o
  5. MPI简介
  6. ReactiveCocoa的使用方法
  7. DF与EF的区别
  8. URAL 1233 - Amusing Numbers
  9. ashx文件要使用Session
  10. windows下svn+apache搭建svn服务器
  11. 多线程CountDownLatch和Join
  12. java面试题之int和Integer的区别
  13. 银河麒麟操作系统U盘手动挂载,出现乱码
  14. html2cavans
  15. 基于爬取百合网的数据,用matplotlib生成图表
  16. 为啥用ip不可以访问知乎,而百度却可以?
  17. electron入坑指南
  18. BS架构和CS架构的区别
  19. [skill] C语言数组名到底是个啥
  20. pyquery 安装

热门文章

  1. spi总结
  2. MapReduce工作原理(简单实例)
  3. Luogu P2742 模板-二维凸包
  4. 20179223《Linux内核原理与分析》第七周学习笔记
  5. 强大的Core Image(教你做自己的美图秀秀))
  6. SQL夯实基础(八):联接运算符算法归类
  7. (转)GIL 与 Python 线程的纠葛
  8. 洛谷 P1098 字符串的展开
  9. 使用distillery 实现版本的动态升级&& 动态降级
  10. 让nodejs 支持 es6 import