A和B两个人在玩一个游戏,这个游戏是他们轮流操作一对整数(x,y)。
初始时(x,y)=(1,0),可以进行三种操作:
- 将(x,y)变成(1,x+y)。
- 将(x,y)变成(2x,y)。
- 将(x,y)变成(3x,y)。
给定正整数n (n<=30,000),如果x+y>=n时就不能进行后两种操作。
如果某个人操作后y>=n,他就输掉了。
假如A为先手,问他是否有必胜策略。
这题是道交互题,需要包含cliclib.h头文件,有下面三个函数可以使用:
- int inicjuj(); 开始时调用,返回n的值。
- void alojzy(int x); A进行一次操作,x表示操作编号。
- int bajtazar(); 获得B的操作编号。
例如下面的程序每次选择操作1:
include "cliclib.h"
int main() {
int n = inicjuj();
while (true) {
alojzy(1);
int x = bajtazar();
}
return 0;
}