举一反三学python(6)—水仙花数三法

1、什么是水仙花数

        水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)

2、代码实现:

# 方法1:
num3 = []                              # 定义一个空列表
for b in range(1,10):              # 循环构建数位上的数,百位上1-9
    for s in range(10):                                                 # 十位上0-9
        for g in range(10):                                             # 个位上0-9
            num1 = b*100 + s*10 + g                    # 得出三位数
            num2 = b**3 + s**3 + pow(g,3)           # 用条件计算值
            if num1 == num2:                                # 条件判断
                num3.append(num1)                       # 符合条件的添加到空列表中
print('方法1——水仙花数有:',num3)              # 打印输出

# 方法2:
num4 = []
for i in range(100,1000):                        # 循环构建3位,100-999
    num = str(i)
    if int(num[0])**3 + int(num[1])**3 + int(num[2])**3 == i:  # 转换对象类型计算,并条件判断
        num4.append(i)
print('方法2——水仙花数有:',num4)

# 方法3:
num5 = []
for num in range(100,1000):
    g = num % 10                  # 取余,得到个位数字
    s = num // 10 % 10          # 整除取余,得到十位数字
    b = num // 100                 # 整除,得到百位数字
    if num == g**3 + s**3 + b**3:
        num5.append(num)
print('方法3——水仙花数有:',num5)

三、运行结果:

四、知识延伸

四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值