/*
题目描述
今盒子里有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[] = {, , , , , , , , }; int main() {
int n;
scanf("%d", &n);
for (int i = ; i < n; ++i) {
int temp;
scanf("%d",&temp);
caculate(temp);
}
} void caculate(int n) {
if (n <= ) {
printf("%d\n", a[n - ]);
} else {
for (int i = ; i < n; ++i) {
a[i] = !(a[i - ] & a[i - ] & a[i - ] & a[i - ]);
}
printf("%d\n",a[n-]);
}
}

最新文章

  1. monkeyrunner脚本录制
  2. Tomcat源码阅读(二)初始化
  3. HTML5游戏开发引擎,初识CreateJS
  4. 精通Web Analytics 2.0 (2) 内容简介
  5. Mysql InnoDB行锁实现方式
  6. sql分页代码
  7. 队列queue的C实现
  8. HttpSolrServer-采用静态工厂方法,创建HttpSolrServer单实例
  9. 使用VSS2005的时候报错:输入正确的服务器地址依然出错了
  10. Android 通过代码设置radiobutton不同方位图标的两种方法
  11. javascript数字验证输入
  12. ESP8266使用详解--基于Lua脚本语言
  13. 在Android中使用AlarmManager
  14. 阅读nsq源码 ---初步架构设计图
  15. 如何在sublime text3运行nodejs
  16. block学习二:使用Block替代回调
  17. shutil模块和几种文件上传Demo
  18. Spring Enable* 注解
  19. Linux下 XordDos(BillGates)木马查杀记录
  20. kbengine学习2 创建项目

热门文章

  1. 解决安装Anaconda后ZSH中使用的依然是系统自带的Python
  2. 路由器配置——RIP路由
  3. hdu 1133 卡特兰 高精度
  4. ubuntu安装chrome driver
  5. linux上安装openssl的步骤
  6. python 找出数组重复的元素
  7. Netfilter 之 连接跟踪钩子函数分析
  8. Python驱动Headless Chrome
  9. 梯度提升树GBDT总结
  10. ArcGIS Python根据的点坐标,创建点要素