12):题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

    程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

    程序源代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*- for n in range(100,1000):
i = n / 100
j = n / 10 % 10
k = n % 10
if n == i ** 3 + j ** 3 + k ** 3:
print n

    以上实例输出结果为:

153
370
371
407

    将三位数看成由三个数组成,并判断其各位数字立方和是否等于该数本身:

#!/usr/bin/python
# -*- coding: UTF-8 -*- for x in range(1,10):
for y in range(0,10):
for z in range(0,10):
s1=x*100+y*10+z
s2=pow(x,3)+pow(y,3)+pow(z,3)
if s1==s2:
print "水仙花数有:%7ld" %(s1)
#!/usr/bin/python
# -*- coding: UTF-8 -*- for i in range(100, 1000):
s = str(i)
if int(s[0]) ** 3 + int(s[1]) ** 3 + int(s[2]) ** 3 == i:
print(i)
#!/usr/bin/env python
# -*- coding: UTF-8 -*- L = []
for n in range(100,1000):
    i = n / 100
    j = n /10 % 10
    k = n % 10
    if n == i ** 3 + j ** 3 + k ** 3:
        if n == pow(i,3) + pow(j,3) +pow(k,3):
            L.append(n)
print(L)
print len(L)

    兼容 Python2.x 与 Python3.x,Python3.x 取整为 //,而不是 /, 参考方法:

#!/usr/bin/python3
# -*- coding: UTF-8 -*- for i in range(100,1000):
h=i//100
t=(i-100*h)//10
s=i-100*h-10*t
if i==h**3+t**3+s**3:
print(i)
#!/usr/bin/env python
# -*- coding: UTF-8 -*- a = 1
b = 1
c = 1
for a in range(0,10):
for b in range(0,10):
for c in range(0,10):
if int(a)**3+int(b)**3+int(c)**3 == a*100+b*10+c and a != 0:
x = a*100+b*10+c
print(x)
#!/usr/bin/python
# -*- coding: UTF-8 -*- for x in range(10):
for y in range(10):
for z in range(10):
w = x*100 + y*10 + z
if (w>100) and (w == x**3 + y**3 + z**3):
print w
#!/usr/bin/python
# -*- coding: UTF-8 -*- #列表解析法
l=[x**3+y**3+z**3 for x in range(0,10) for y in range(0,10) for z in range(0,10) if (str(x)+str(y)+str(z))==str(x**3+y**3+z**3)]
print(l)
#!/usr/bin/python
# -*- coding: UTF-8 -*- for n in range(100,1000):
m = n
sumValue = 0
while(m>0):
(m,r) = divmod(m, 10)
sumValue += r ** 3
if n == sumValue:
print(n)
#coding:UTF-8

print [i for i in range(100,1000) if (i/100)**3+((i-i/100*100)/10)**3+(i%10)**3 == i]

    Python3 参考:

#水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身

#生成器函数ppdi,可生成十进制自然数中的所有水仙花数,共有88个
def ppdi():
n=3
while 1:
#生成器推导式
l=(i for i in range(10**(n-1),10**n) if sum([int(str(i)[j])**n for j in range(n)])==i)
yield l
n+=1 #最大的水仙花数有39位
def f(max):
for i in ppdi():
for j in i:
if j<10**max:
print(j)
else:
break
if j>10**max:
break #为环保起见,建议7位以内即可
f(5)

    这次的小例子有点意思。开始我都不知道水仙花数是什么鬼?嘿嘿。。。

    如果感觉不错的话,请多多点赞支持哦。。。

  原文链接:https://blog.csdn.net/luyaran/article/details/80049547

python2.7练习小例子(十二)的更多相关文章

  1. python2.7练习小例子(二十九)

        29):1.题目:按相反的顺序输出列表的值. #!/usr/bin/python # -*- coding: UTF-8 -*- a = ['one', 'two', 'three'] for ...

  2. python2.7练习小例子(二十八)

    28):题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母.     程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母. ...

  3. python2.7练习小例子(二十四)

        24):1.题目:利用递归方法求5!.     程序分析:递归公式:fn=fn_1*4! #!/usr/bin/python # -*- coding: UTF-8 -*- def fact( ...

  4. python2.7练习小例子(二十七)

        27):题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同.      #!/usr/bin/python # -*- coding: UTF-8 -* ...

  5. python2.7练习小例子(二十三)

        23):题目:求1+2!+3!+...+20!的和.     程序分析:此程序只是把累加变成了累乘. #!/usr/bin/python # -*- coding: UTF-8 -*- n = ...

  6. python2.7练习小例子(二十二)

        22):题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.     程序分析:请抓住分子与分母的变化规律. #!/usr/bin/pyt ...

  7. python2.7练习小例子(二十六)

        26):题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字.     程序分析:学会分解出每一位数.     程序源代码: #!/usr/bin/python # ...

  8. python2.7练习小例子(二十)

        20):题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上 ...

  9. python2.7练习小例子(二十五)

        25):题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后问第一个人,他 ...

  10. python2.7练习小例子(二)

        2):题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:2 ...

随机推荐

  1. Windows 2012R2远程桌面服务部署环境简介

    一.部署环境 服务器名 所属域 IP地址 服务器用途 备注 AD01 CONTOSO.COM 192.168.1.1 域控制器 采用Windows Server 2012 R2 Datacenter ...

  2. WIN10安装VS2013出现兼容性问题解决

    在WIN10安装VS2013时,会提示“windows程序兼容模式已打开”,通过搜索引擎搜索的常见方案为: 1.使用命令行安装,进入vs_ultimate文件所在目录,输入:vs_ultimate / ...

  3. Echarts横坐标倾斜,顶部显示数字

    最近项目使用到Echarts,所以学习了下 根据API,实现Echarts很简单,在这就不多说了,下面就说说项目中碰到的一些需求 1.由于横坐标很多,导致数据不能展示完整,所以需要设置横坐标样式倾斜展 ...

  4. 二分图最大权值匹配 KM算法 模板

    KM算法详解+模板 大佬讲的太好了!!!太好了!!! 转载自:http://www.cnblogs.com/wenruo/p/5264235.html KM算法用来求二分图最大权完美匹配. 本文配合该 ...

  5. 关于node-sass安装失败的解决办法

    在测试gulp-webapp的时候遇到了 styles 不能被正常编译的问题,究其原因是node-sass没有被正常安装. 根本原因是国内网络的原因. 最终的解决方法是通过淘宝的npm镜像安装node ...

  6. 转载 【MySql】Update批量更新与批量更新多条记录的不同值实现方法

    批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...

  7. 【luogu P1137 旅行计划】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1137 topsort + DP #include <queue> #include <cs ...

  8. 【luogu P2324 [SCOI2005]骑士精神】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2324 不懂怎么剪枝,所以说,,我需要氧气.. 第一道A* // luogu-judger-enable-o2 ...

  9. css ul dl dt 表格分页 文本框样式

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. centos安装nodejs二进制包

    1.下载nodejs的二进制包 wget https://nodejs.org/dist/v6.3.1/node-v6.3.1-linux-x64.tar.xz 2.解压下载的安装包 tar xf n ...