题目描述
有一堆石子,A,B两人轮流从中取出石子,每次取出的石子数目只能为1,3,7或8,最后一枚石子谁取到就是输方。A,B两人都足够聪明,不会做出错误的判断。现给出一定数目的石子,A先取石子,计算A最终是输是赢,赢用1表示,输用0表示.
解题报告:
大致分析可知,简单dp,代码如下:
import java.util.Scanner;
public class N03Stone {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] status= new int[10001];
int[] a=new int[n];
status[0]=0;
status[1]=0;
status[2]=1;
status[3]=0;
status[4]=1;
status[5]=0;
status[6]=1;
status[7]=0;
status[8]=1;
for(int i=9;i<10001;i++){
if(status[i-1]==0||status[i-3]==0||status[i-7]==0||status[i-8]==0){
status[i]=1;
}else{
status[i]=0;
}
}
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
for(int i=0;i<n;i++){
System.out.println(status[a[i]]);
}
}
}