【题目描述】
有N个学生刚吃完饭,准备出食堂,学校有个规矩:必须2人一排或3人一排离开。
两个教官A,B轮流取2或3人,谁先取完谁就赢得游戏(A先取)。
若两人都采用最优策略,询问谁会赢。
【输入描述】
一个整数N。
【输出描述】
A赢输出1;
B赢输出-1;
平局输出0;
若人数为负,输出120。
【样例输入】
7
【样例输出】
1
【数据范围及提示】
N <= 10000。
源代码: #include<cstdio> int n; int main() //显而易见的简单博弈论。 { scanf("%d",&n); if (n<0) printf("120"); else { int t1=n/5,t2=n%5; if (!t2) //若能够整除,则一定为ABAB状态。 printf("-1"); else if (t1&1) //判断是否为奇数。 { if (t2<2||t2>3) //此情况为2步不为3步。 printf("-1"); //ABAB状态。 else printf("1"); //ABABA状态。 } else { if (t2<2||t2>3) printf("1"); else printf("-1"); } } return 0; }
时间: 2024-10-10 20:41:04