zoukankan      html  css  js  c++  java
  • 今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个

    /*
    题目描述
    今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。
    我们约定:
    每个人从盒子中取出的球的数目必须是:1,3,7或者8个。
    轮到某一方取球时不能弃权!
    A先取球,然后双方交替取球,直到取完。
    被迫拿到最后一个球的一方为负方(输方)
    请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?
    */
    
    /*可以看出,当某个数要获胜,在其先抽之后剩下的那个数必输即可。
     * 也就是n时,只要n-1,n-3,n-7和n-8只要有一个数字对于乙玩家来说是必输的,
     * 那么甲就是赢家,这就可以利用之前求到的。*/
    #include <stdio.h>
    void caculate(int n);
    int a[10000] = {0, 1, 0, 1, 0, 1, 0, 1, 1};
    
    int main() {
        int n;
        scanf("%d", &n);
        for (int i = 0; i < n; ++i) {
            int temp;
            scanf("%d",&temp);
            caculate(temp);
        }
    }
    
    void caculate(int n) {
        if (n <= 9) {
            printf("%d
    ", a[n - 1]);
        } else {
            for (int i = 9; i < n; ++i) {
                a[i] = !(a[i - 1] & a[i - 3] & a[i - 7] & a[i - 8]);
            }
            printf("%d
    ",a[n-1]);
        }
    }
  • 相关阅读:
    高并发性能测试
    Gitlab源码库里代码提交后,如何触发jenkins自动构建?
    San初步使用
    客户端通过HTTP协议与服务端交换数据
    Web服务端开发需要考虑的问题(续)
    Web服务端开发需要考虑的问题
    我对Web开发的认识
    postgresql远程连接中断的处理
    关于12306的想法
    oracle context
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/11543618.html
Copyright © 2011-2022 走看看