Python 24 点游戏:递归算法实现
下面是一个使用 Python 3.8 编写的可以让 24 点游戏一直运行的程序。当输入数字时,程序会计算该数字是否可以通过加减乘除的运算得到 24。当输入 "q" 时,程序会退出循环。\n\npython\ndef calculate24(nums):\n if len(nums) == 1:\n return abs(nums[0] - 24) < 1e-6\n for i in range(len(nums)):\n for j in range(len(nums)):\n if i != j:\n new_nums = [nums[k] for k in range(len(nums)) if k != i and k != j]\n if calculate24(new_nums + [nums[i] + nums[j]]):\n return True\n if calculate24(new_nums + [nums[i] - nums[j]]):\n return True\n if calculate24(new_nums + [nums[i] * nums[j]]):\n return True\n if nums[j] != 0 and calculate24(new_nums + [nums[i] / nums[j]]):\n return True\n return False\n\nwhile True:\n user_input = input("请输入四个数字,用空格分隔(输入q退出):")\n if user_input == 'q':\n break\n nums = [int(x) for x in user_input.split()]\n if len(nums) != 4:\n print("输入的数字个数必须为四个!")\n continue\n if calculate24(nums):\n print("可以通过加减乘除得到 24!")\n else:\n print("不能通过加减乘除得到 24!")\n\n\n在这个程序中,calculate24 函数使用递归的方式来判断给定的四个数字是否可以通过加减乘除的运算得到 24。如果可以得到 24,则返回 True;否则返回 False。\n\n在主循环中,程序会一直接受用户输入四个数字,并判断是否可以得到 24。当用户输入 "q" 时,程序会退出循环。
原文地址: https://www.cveoy.top/t/topic/puRb 著作权归作者所有。请勿转载和采集!