第九讲动动手第1个问求解答
编写一个程序,求 100~999 之间的所有水仙花数for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10 # 注意这里要使用地板除哦~
if sum == i:
print(i)
说实话,数学不好,思维实在转不过来。 1.你要了解啥是水仙花数,即xyz = x的三次方 +y的三次方 + z的三次方 百度
2sum = sum + (temp%10) ** 3 # 实现1的条件
temp //= 10 # 地板除是向下·整,如果此时 temp 是一个个位数,//10= 0表明此时的 i 不是水仙花数,即temp为 0 跳出 条件不成立
水仙花数是个位十位百位的立方和等于自身
counts=0
for num in range(100,1000):
g = num%10
s = num//10%10
b = num//100
if num == g**3+s**3+b**3:
counts+=1
print(counts)
水仙花數(Narcissistic number){:5_108:}
for i in range(100, 1000): # 預設 100 至 999 區間
sum = 0 # 預設變量
temp = i # 重複判斷 i 是否是水仙花數,i 就是 100, 101, 102... 999
while temp:
sum = sum + (temp%10) ** 3 # 這裡運用水仙花數公式
temp //= 10 # 這裡的 // 表示取商
if sum == i: # sum 和 i 同值就是水仙花數了(水仙花數條件)
print(i) # 條件達成就打印
页:
[1]