zoukankan      html  css  js  c++  java
  • 一道阿里的面试题

    随便写写:

    package com.test;
    
    /**
     * 有一堆石子共100枚,甲乙轮流从该堆中取石子,每次可以去2、4或6枚,取得最后的石子的玩家为赢家,若甲先取,则
    	A 谁都无法必胜
    	B 乙必胜
    	C 甲必胜
    	D 不确定 
     * @author zhangxl
     *
     */
    public class GetNumber {
    	public static void main(String[] args) {
    		int aFirstGet = getRandomNumber();
    		for(int i = 0;i<50;i++){
    			 Test(i,aFirstGet);
    		}
    	}
    	
    	private static void Test(int m,int aFirstGet){
    		int getNum = 0;
    		
    		char user = 'A';//A现取之后,轮到B取,这时初始值为B
    		for(int i =100-aFirstGet;i >0;){//A取2或4或6后所剩的
    			i = i-getNum;
    			if(user=='A'){
    				user='B';
    				getNum=8-getNum;
    			}else{
    				getNum=getRandomNumber();
    				user='A';
    			}
    //			System.out.print(getNum+",");
    		}
    		System.out.println("第"+(m+1)+"次试验:"+"A首先取的个数是"+aFirstGet+"时,最后取的人:"+user);
    	}
    	/**
    	 * 获取以{2、4、6}为范围的随机数
    	 * @return
    	 */
    	
    	private  static int getRandomNumber(){
    		int num=(int) (Math.random()*6+1);
    		return num%2==0?num:getRandomNumber();
    	}
    }
    

     甲先取4个,后面乙取X个,甲就取8-X个。

    结论:按照这种方式,A先取4个最后必赢,先取2个是找死,先取6个不确定。

  • 相关阅读:
    How to configure security of ActiveMQ ?
    CentOS 搭建 nginx + tomcat
    25个 Git 进阶技巧
    写给Git初学者的7个建议
    my links
    Shell scripts to Create a local dir base on the time.
    81For全栈技术网
    一款可视化的在线制作H5
    在线制作h5
    在线制作h5——上帝的礼物
  • 原文地址:https://www.cnblogs.com/james1207/p/3341712.html
Copyright © 2011-2022 走看看