简单的博弈
问题:简单的博弈游戏:两个人只玩一个棋子,棋子开始时在棋盘的右上角,棋盘的大小为 m 行 n 列。即棋子待在的位置是(1, n)。在这个棋盘上,棋子只能够向左、左下(斜线)和下方移动。作为对弈的双方,每人每一步必须将棋子挪动,直到一方不能挪动的棋子为止。不能挪动的一方为输方。告诉你 m 和 n 后,你能完成这个任务吗?如果第一人胜利,则结果为first!,第二人胜利结果为 second! 本题假设两人都是极为聪明,不会走错(即均遵循最优策略)。
输入
一行包含两个正整数 m 和 n,两数间用一个空格分隔。
输出
按题目的要求输出。
输入样例 1
8 8
输出样例 1
first!
提示
数据范围:0 < m <= 2000, 0 < n <= 2000。
来源
Online Judge http://127.0.0.1
分析
代码不难,看图一下就明白了。
c/c++
#include<iostream>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
if(m%2==0&&n%2==0)
cout<<"first!";
else if(m%2==0&&n%2!=0||m%2!=0&&n%2==0)
cout<<"first!";
else
cout<<"second!";
return 0;
}
java
package 简单的博弈;
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int m=input.nextInt();
int n=input.nextInt();
if(m%2==0&&n%2==0)
System.out.println("first");
else if(m%2==0&&n%2!=0||m%2!=0&&n%2==0)
System.out.println("first");
else
System.out.println("second");
}
}