18334673551 发表于 2019-11-16 11:31:26

那个temp//=10是什么意思呢?还请大家解惑,非常感谢

就求水仙花数的那个题
for i in range(100,1000):
    sum=0
    temp=i
    while temp:
      sum=sum+(temp%10)**3
      temp//=10
    if sum==i:
      print(i)

wp231957 发表于 2019-11-16 11:32:15

temp=temp//10

dragov 发表于 2019-11-16 11:51:21

// 这是地板除的意思

jackz007 发表于 2019-11-16 12:01:48

      地板除,与普通除的区别是,其结果是整型数,而后者是浮点数。

_2_ 发表于 2019-11-16 12:30:13

jackz007 发表于 2019-11-16 12:01
地板除,与普通除的区别是,其结果是整型数,而后者是浮点数。

注意,无论是整数还是浮点数都会执行地板除法

zltzlt 发表于 2019-11-16 20:23:18

temp //= 10 就是 temp = temp // 10

// 是地板除的符号。地板除返回一个数除以另一个数的商(整数)。例如 7 // 2 = 3,9 // 4 = 2。

残酷月光 发表于 2020-6-8 16:29:46

有大佬可以讲下这个程序吗?不知道为啥呢

614904650 发表于 2021-8-19 21:42:36

确实 没搞懂这个程序

ZlordAzi 发表于 2022-6-23 23:27:46

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
      sum = sum + (temp%10) ** 3
      temp //= 10         # 注意这里要使用地板除哦~
    if sum == i:
      print(i)
这段程序是什么意思我看不懂,但是输出的结果是对的。

print('100到1000之间所有的水仙花数:')
a = 0
for i in range(100,1000):
    x = i//100   #取百位数
    y = i//10%10 #取十位数
    z = i%10   #取个位数
    if x ** 3 + y**3 + z**3 ==i:
      print('%d是水仙花数' %i)
      a += 1
print('一共有%d个水仙花数' %a)
我花了半小时才知道怎么把百位数和十位数分出来,这对初学者不友好,自己写的虽然冗杂,但至少能明白是什么意思

loncode 发表于 2022-7-29 14:08:01

你这思路是正常的
页: [1]
查看完整版本: 那个temp//=10是什么意思呢?还请大家解惑,非常感谢