lkj11223 发表于 2019-11-30 00:50:09

萌新求助 009讲 求水仙花 答案不理解

for i in range(100,1000):
    sum=0
    temp=i
    while temp:
      sum=sum + (temp%10)**3   #sum 初始值是0 , sum=sum+(100到1000循环跑)乘以3的立法,这段能得到一个什么数做什么用

      temp//=10       #地板除法temp是对哪个数 哪个值进行地板除啊然后等于10 为啥等于10
    if sum==i:    #i等于符合水仙花条件的值
      print(i)   #打印 i


求助大佬不吝指导。白又白的问题

jackz007 发表于 2019-11-30 01:08:27

      之所以要赋初值 sum = 0 那是因为需要通过循环累加来计算 sum。

      假设 i = 578,看看百、十、个位数的立方和是如何计算出来的。
i = 578 , sum = 0 , temp = 578
第一次循环: temp = 578,578 % 10 = 8   sum = 0 + 8 ** 3               , temp = 578 // 10 = 57
第二次循环: temp =57, 57 % 10 = 7   sum = 8 ** 3 + 7 ** 3          , temp =57 // 10 =5
第三次循环: temp =   5,5 % 10 = 5   sum = 8 ** 3 + 7 ** 3 + 5 ** 3 , temp =   5 // 10 =0
temp = 0 循环终止

Judie 发表于 2019-11-30 06:14:36

给你个大佬的链接

【Pyhon 009讲心得体会】【摸球和水仙花数 】
https://fishc.com.cn/thread-126088-1-1.html
(出处: 鱼C论坛)

zltzlt 发表于 2019-11-30 17:07:17

看看这个吧:

Python:问题贴之水仙花数
https://fishc.com.cn/thread-93848-1-1.html
(出处: 鱼 C 论坛)
页: [1]
查看完整版本: 萌新求助 009讲 求水仙花 答案不理解