当前位置: 移动技术网 > IT编程>脚本编程>Python > 【python例子】 python 计算1000以内的水仙花数

【python例子】 python 计算1000以内的水仙花数

2020年07月14日  | 移动技术网IT编程  | 我要评论
如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153=1^3+5^3+3^3,因此153就是一个水仙花数求1000以内的水仙花数(3位数)网上这样的例子很多,总结3种常用的方法:代码实现:#coding:utf-8#5**3 B表示5的3次方#整除后取余数 1001%100# 方法一:for bai in range(1,10): #百位 for shi in range(0,10): #十位 ...

如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。  

例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数

求1000以内的水仙花数(3位数) 

网上这样的例子很多,总结3种常用的方法:

代码实现:

#coding:utf-8
#5**3  B表示5的3次方
#整除后取余数 1001%100

# 方法一:
for bai in range(1,10):        #百位
    for shi in range(0,10):    #十位
        for ge in range(0,10): #个位
            i=bai*100+shi*10+ge
            if i==bai**3+shi**3+ge**3:
                print(i)

#方法二:将数字先转化为字符串,利用字符串索引找到百、十、个位的数字值
for i in range(100,1000):
    s=str(i)   #将数字转化为字符串
    d=int(s[0])  #百位
    e=int(s[1])  #十位
    f=int(s[2])  #个位
    if i==d**3+e**3+f**3:
        print(i)

#方法三:
for i in range(100,1000):
#// 使用取模,分别取出百位数、10位数、个位数
#/// k = i // 10 % 10, 需要注意运算符号和运算顺序
    a=i // 100  #整除获得百位数
    b=i //10 % 10     # 或者b = (i % 100) // 10
    c=i % 10    #个位数
    if i == a ** 3 + b ** 3 + c ** 3:
        print(i)

 

运行结果:

 

注意:

 range() 函数创建一个整数列表,是前闭后开。

例如range(1,10),取的是1,2,3,4,5,6,7,8,9

 

 

 

本文地址:https://blog.csdn.net/u012106306/article/details/107318387

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网