python== 发表于 2020-9-28 17:25:09

求助,求水仙花数这道题是什么意思

编写一个程序,求 100~999 之间的所有水仙花数。
   如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。

for i in range(100, 1000):
        sum = 0
        temp = i
        while temp:
                sum = sum + (temp%10) ** 3
                temp //= 10         # 注意这里要使用地板除哦~
        if sum == i:
                print(i)


求助这里第二行第三行代表什么意思,以及 (temp%10) ** 3和temp //= 10 是什么意思

biubiubiu428 发表于 2020-9-28 17:30:59

%10是求个位数,**3是求个位数的三次方,//10是求temp的百位数和十位数,变成一个两位数

bonst 发表于 2020-9-28 18:23:13

不知道你说的第二行和第三行不是指变量赋值的那两句,我还是说一下,sum = 0,temp=i,就是吧0赋给sum,把for循环100-1000的数依次赋给temp;至于后面的(temp%10)**3则表示 i 对10取余,并且求这个余数的三次方;temp//=10可以展开写成temp = temp//10,代表把temp对10取整除数,并且再赋值给temp。

kylin121380 发表于 2020-9-28 18:43:14

for i in range(100, 1000):
      sum = 0# 所有位的三次方的和
      temp = i
      while temp:# 循环直至temp为零
                sum = sum + (temp%10) ** 3# temp%10获得temp的个位数,此处sum加上个位的三次方
                temp //= 10         # temp地板除10,比如数字位321,此时就变为32,然后开始循环
                # 以321为例,分别进行了 sum = 0 + 1 ** 3 321//=10 变为32
                # sum = 1 + 2 ** 332//=10 变为3
                # sum = 9 + 3 ** 33//=10 变为0 跳出循环
                  
      if sum == i:# 如果两者相等,则为水仙花数
                print(i)

一抹心尘 发表于 2020-10-30 13:21:48

如题 ,如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
那么,首先我们是不是要获取它的百十个位数分别对应的数字,好的,我们一个个来看。
153 // 10 地板除10是不是可以得到得到它的前面两位数,而% 10因为十位和百位上的数必定是10的倍数,也就是说一定会被整除,那么余下的就是个位数,没错吧。
那么到这里是不是就获取到了我们所需要的这3个数。然后就是每个数字的立方,再把3个立方相加得到立方和,你看是不是这么个逻辑。
代码在下面:
for i in range(100, 1000):
      sum = 0# 所有位的三次方的和
      temp = i
      while temp:# 循环直至temp为零
                sum = sum + (temp%10) ** 3# temp%10获得temp的个位数,此处sum加上个位的三次方
                temp //= 10         # temp地板除10,比如数字位321,此时就变为32,然后开始循环
                # 以321为例,分别进行了 sum = 0 + 1 ** 3 321//=10 变为32
                # sum = 1 + 2 ** 332//=10 变为3
                # sum = 9 + 3 ** 33//=10 变为0 跳出循环
                  
      if sum == i:# 如果两者相等,则为水仙花数
                print(i)
页: [1]
查看完整版本: 求助,求水仙花数这道题是什么意思