题目:一共有N堆石子,编号1....n,第i堆中有个a[i]个石子。每次操作Alice和Bob可以从任意一堆石子中取出任意数量的石子,至少取一颗,至多取出这一堆剩下的所有石子。两个人轮流行动,取光所有石子的一方获胜。Alice为先手。给定a,假设两人都采用最优策略,谁会获胜?
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] arr = new int[n];
for(int i =0;i<arr.length;i++){
arr[i] = input.nextInt();
}
int res = nim(arr);
if(res >0){
System.out.println("Alice获胜");
}
else{
System.out.println("Bob获胜");
}
}
public static int nim(int[]arr){
int res = arr[0];
for(int i =1;i<arr.length;i++){
res^=arr[i];
}
return res;
}
}