您的位置:首页 > 编程语言 > Python开发

Python中水仙花算法的计算

2017-04-20 10:08 295 查看
Python中水仙花算法的计算

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2017-04-18 23:03:03
# @Author  : xiaoke

import os
'''
水仙花数问题:
是指一个n位数N(n>=3),它的每个位上的数字的n次幂之和等于这个数N
例如153:    1**3+5**3+3**3=153
'''
def  isFlower(x):
listName=[]
temp=x
while temp>0:
# 求最后一位数,并添加到列表中
listName.append(temp%10)
# 去掉最后一位,因为已添加到列表中
temp //= 10#地板除法,2.2以后新加的,直接把最后一位数干掉
# 求出列表的长度,就是几位数
k=len(listName)
# 最后使用列表解析式,判断是否相等
return sum([n ** k  for n in listName]) == x

# 在一定的范围内查找
for m in range(100,999):
if isFlower(m):
print(m)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息