取石头————解题报告

题目描述

有一堆石子,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


你可能感兴趣的:(算法)