題目
描述
問題描述:給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利
輸入:
4個1-10的數字,[數字允許重復,但每個數字僅允許使用一次,測驗用例保證無例外數字,
輸出:
true or false
本題含有多組樣例輸入,
輸入描述:
輸入4個int整數
輸出描述:
回傳能否得到24點,能輸出true,不能輸出false
示例1
輸入:
7 2 1 10
輸出:
true
解題思路
(1)用遞回演算法進行求解
(2)每次取出串列中的第一個元素,設定目標值為24,用24對其進行加減乘除
(3)最后一層為為只剩最后一個元素
(4)只需要滿足其中一條路徑為24,則輸出True,全部不滿足則輸出False
代碼
def func(data, tar):
if len(data)==1:
return data[0]==tar
else:
for i in range(len(data)):
data = data[1:] + [data[0]]
if func(data[1:], tar+data[0]) or func(data[1:], tar-data[0]) or func(data[1:], tar*data[0]) or func(data[1:], tar/data[0]):
return True
return False
while True:
try:
data = list(map(int, input().split()))
n = len(data)
print(str(func(data, 24)).lower())
except Exception as e:
break
Reference
華為機試題庫_在線編程+題解_牛客題霸_牛客網
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302585.html
標籤:其他
上一篇:初始Unity
