【python新手求助】第九课水仙花问题求助
for i in range(100,1000):summe = (i/100) ** 3 +((i%100)/10) ** 3 + ((i%100)%10 )** 3
if summe == i:
print(summe)
请问我这样写没反应的原因是什么呜呜……
for i in range(100,1000):
summe = (i//100) ** 3 +((i%100)//10) ** 3 + ((i%100)%10 )** 3
if summe == i:
print(summe)
应该用地板除法 本帖最后由 sunrise085 于 2020-9-8 21:09 编辑
summe = (i/100) ** 3 +((i%100)/10) ** 3 + ((i%100)%10 )** 3
这一句有问题
其中,i/100 得到的不是百位数,而是一个小数,应该用地板除,i//100,这样得到的才是百位数
(i%100)/10 也是同样的错误,应该写成 (i%100)//10
原因是,python中对数据类型要求不严格,除法的结果都是小数,即使相除的两个数都是整数,结果依然是小数,在python中地板除才是整除
for i in range(100,1000):
summe = (i//100) ** 3 +((i%100)//10) ** 3 + ((i%100)%10 )** 3
if summe == i:
print(summe) 本帖最后由 qq16542 于 2020-9-8 21:10 编辑
i/100/是除的意思 百位数是取整用 //十位数是i除100求余数再除10取除整数
你可以先改下
页:
[1]