每天一習題,提升Python不是問題!!有更簡潔的寫法請評論告知我!
https://www.cnblogs.com/poloyy/category/1676599.html
題目
如果一個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。 例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一個水仙花數 那么問題來了,求1000以內的水仙花數(3位數)
解題思路
- int轉字符串序列,獲取到每一位數
- 調用math.pow函數求立方和
- 三個數字立方和相加
答案
lists = [] for i in range(101, 1000): i = str(i) i1, i2, i3 = int(i[0]), int(i[1]), int(i[2]) if int(i) == int(math.pow(i1, 3) + math.pow(i2, 3) + math.pow(i3, 3)): lists.append(i) print(lists)