用python語(yǔ)言實(shí)現(xiàn)水仙花數(shù)
什么是水仙花數(shù)?
- 所謂"水仙花數(shù)"是指一個(gè)三位數(shù)纳鼎,其各位數(shù)字立方和等于該數(shù)本身俺夕。例如:153是一個(gè)"水仙花數(shù)",因?yàn)?53=1的三次方+5的三次方+3的三次方贱鄙。
第一種劝贸,while循環(huán)
- 程序分析:通過(guò)while循環(huán)列出1000以?xún)?nèi)所有三位數(shù),然后通過(guò)取整數(shù)算出百位逗宁,減去百位映九,然后除以10化整減去個(gè)位算出十位,取余數(shù)算出個(gè)位瞎颗,然后進(jìn)行**3來(lái)驗(yàn)證是否水仙花數(shù)
i =100
while i<1000:
num1 = i // 100 # 百位
num2 = int((i-num1*100)/10) # 十位
num3 = i%10 #個(gè)位
# print(num2)
if num3 **3 +num2**3 +num1**3 ==i:
print(i)
i += 1
結(jié)果:
153
370
371
407
第二種for in 循環(huán)遍歷
- 程序分析 利用for循環(huán)控制100-999個(gè)數(shù)件甥,每個(gè)數(shù)分解出個(gè)位捌议,十位,百位嚼蚀。
for i in range(100,1000):
s=str(i)
one=int(s[-1])
ten=int(s[-2])
hun=int(s[-3])
if i == one**3+ten**3+hun**3:
print(i)
153
370
371
407