藍橋杯每日一題(2):維納猜年齡(python)
阿新 • • 發佈:2021-01-17
Topic:
美國數學家維納(N.Wiener)智力早熟,11歲就上了大學。他曾在1935~1936年應邀來中國清華大學講學。
一次,他參加某個重要會議,年輕的臉孔引人注目。於是有人詢問他的年齡,他回答說:
“我年齡的立方是個4位數。我年齡的4次方是個6位數。這10個數字正好包含了從0到9這10個數字,每個都恰好出現1次。”
請你推算一下,他當時到底有多年輕。
Solution:
運用反解思想
10的3次方是4位數
30的3次方是五位數
所以維納的年齡在10到30之間
進行一一比較
首先建立一個包含0-9的列表
從10開始
嘗試對每一次查詢的年齡的三次方和四次方
將每一次比對的結果刪除
若最後列表為空則0-9中全部刪除
則此年齡就是維納當時的年齡
Code:
for i in range(10, 30):
number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
age_1 = list(str(i ** 3))
age_2 = list(str(i ** 4))
for j in age_1:
try:
number.remove(int(j))
except:
pass
else:
pass
for y in age_2:
try:
number.remove(int(y))
except:
pass
else:
pass
if not number:
print(i)
break
Answer: