三种方式循环获取水仙花数

题目:

输出1000以内的水仙花数。水仙花数是一个3位数,每一位的立方和等于这个数本身,如153=1^3+5^3+3^3。

分析:

 
1、明确循环范围:

  • 定义3位数为num,100<=num<1000。即num初始值为100,增量为num +=1,num <1000时循环,num>=1000时退出循环。

2、数据运算:

  • 定义百位数x,十位数y,个位数z。它们的立方和为verified_num。
  • 百位数为 num/100 取整;十位数为 num/100 取余,再 /10 取整;个位数为 num/10 取余。
  • 相关运算符: //取整       %取余      **幂

3、判断及输出

  • 当verified_num 等于 num 时,输出num。

解法一:while循环

# while循环
num = 100                    # 初始化num
while num < 1000:            # 循环的条件
    x = num // 100           # 百位数
    y = num % 100 // 10      # 十位数
    z = num % 10             # 个位数
    verified_num = x * x * x + y * y * y + z * z * z          # 求每一位的立方和
    if verified_num == num:
        print(num)           # 输出水仙花数
    num += 1                 # 设置增量

解法二:for循环

# for循环
for num in range(100, 1000):
    x = num // 100
    y = num % 100 // 10
    z = num % 10
    verify_num = x ** 3 + y ** 3 + z ** 3
    if verify_num == num:
        print(num)

解法三:嵌套循环

# 循环嵌套
lower = 100
upper = 999
while lower <= upper:
    verified_num = sum(int(digit) ** 3 for digit in str(lower))
    if verified_num == lower:
        print(lower)
    lower += 1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值