码迷,mamicode.com
首页 > 编程语言 > 详细

python 水仙花

时间:2019-01-15 17:03:34      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:length   arc   print   ISE   ror   none   参数类型   数值   for   

#简单
def narcissus():
for n in range(100, 1000, 1):
a, b, c = n//100, (n//10)%10, (n%100)%10
if a ** 3 + b ** 3 + c ** 3 == n:
print(n)

#使用yield写法
def narcissus_yield():
m, n = 100, 999
while m <= n:
a, b, c = m // 100, (m // 10) % 10, (m % 100) % 10
if a ** 3 + b ** 3 + c ** 3 == m:
yield m
m = m + 1

#包含水仙花等。。。
def narcissus_all(min, max):
if type(min) != int or type(max) != int:
msg = "参数类型必须为int"
raise TypeError(msg)
if min is None or max is None:
msg = "参数值不能为None!!!"
raise ValueError(msg)
if max == 0 or max < min:
msg = "max不能为0或者max必须比min值大"
raise ValueError(msg)
length = len(str(max))
while min <= max:
temp_val, sum = min, 0
for n in range(length):
sum += (temp_val%10) ** length
temp_val //= 10
if min == sum:
yield min
min = min + 1

for n in narcissus_all(100000, 999999):
print(n)

python 水仙花

标签:length   arc   print   ISE   ror   none   参数类型   数值   for   

原文地址:https://www.cnblogs.com/zxf-study/p/10272458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!