我来证明你玩过的游戏《1+1》有解
首先是游戏规则:
玩游戏的有两个人,各自伸出两只手。双方轮流把自己一只手上的数加上对方一只手上的数,若数字大于10,就撤手,撤去的手不能被对方作为加数。先撤去两只手的为胜利方。
这项工作对人来说太耗脑,所以我决定有计算机解决
设计一个函数,它有4个参数。先代入先手的左手和右手,再代入后手的。若胜利返回1,失败返回0。
1、如果有一方两只手上的数都大于10,即为该方胜。
2、如果双方都有一只手撤去。这个不难判断。
(先手的数加上后手的数之后,先手成为后手,后手成为先手。判断是否胜利,并返回反值。)
3、先手两手都在,后手撤去一手。
分两种情况
(1)先手左手加后手的数
(2)先手右手加后手的数
**存在一个可以使自己胜利,就是胜利方,如果任意的一个都不能使自己胜利,就是失败方。**
(为了节省程序运行时间,我故意把两个分开判断,而不是用逻辑与和逻辑或)
4、先手撤去1手,后手两手都在。
分两种情况。
5、四只手都在。
分四种情况。
函数设计完毕,在输入1 1 1 1的时候,程序返回了0,即为后手占据优势。
输入1 1 1 2,返回1。
输入 1 2 1 2,返回 1。
输入 1 2 1 3,返回0。
所以后手要想胜利,必须要把自己变为 1 3。
而无论是输入1 3 2 2、 1 3 1 3 、1 3 4 2 、1 3 1 5,程序都返回1。
剩下的我懒得挨个代入了。