取石头————解题报告

题目描述

有一堆石子,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]]);			
		}
		
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值