欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 遞歸算24

錢浩然2年前7瀏覽0評論

Python是一種流行的編程語言,它有許多強大的功能。其中遞歸是一種非常重要的技術,可以用來解決許多復雜的計算問題。今天我們來學習一下如何使用Python遞歸算出一個數字24。

def compute24(nums):
if len(nums) == 1:
return nums[0] == 24
for i in range(len(nums)):
for j in range(len(nums)):
if i != j:
new_nums = []
for k in range(len(nums)):
if k != i and k != j:
new_nums.append(nums[k])
for op in '+-*/':
if (op == '+' or op == '*') and j >i:
continue
if op == '+':
new_nums.append(nums[i] + nums[j])
elif op == '-':
new_nums.append(nums[i] - nums[j])
elif op == '*':
new_nums.append(nums[i] * nums[j])
elif nums[j] != 0:
new_nums.append(nums[i] / float(nums[j]))
if compute24(new_nums):
return True
new_nums.pop()
return False

上面的代碼演示了如何利用Python遞歸地算出一個數字24。首先,定義一個函數compute24(),輸入參數為一個列表nums,其中包含四個數字。如果nums只包含一個數字,當且僅當該數字等于24時,返回True。否則,通過兩個循環枚舉列表中的數字,將兩個數字的結果合并成一個新列表,繼續遞歸,直到最后剩下一個數字。在枚舉數字和操作符時,需要排除重復和無效的操作。

以下是一個使用示例:

num_list = [4,7,8,8]
if compute24(num_list):
print("存在計算結果為24")
else:
print("不存在計算結果為24")

如果執行上面的代碼,則會輸出“存在計算結果為24”,因為給定的數字列表可以通過加、減、乘、除操作得到24。通過遞歸的方法,我們可以快速地找出是否存在一種操作方式得到數字24。這個算法也可以擴展到其他數字。