盒子游戏
有两个相同的盒子,其中一个装了n个球,另一个装了一个球。Alice和Bob发明了一个游戏,规则如下:Alice和Bob轮流操作,Alice先操作。每次操作时,游戏者先看看哪个盒子里的球的数目比较少,然后清空这个盒子(盒子里的球直接扔掉),然后把另一个盒子里的球拿一些到这个盒子中,使得两个盒子都至少有一个球。如果一个游戏者无法进行操作,他(她)就输了。下图是一个典型的游戏:
面对两个各装一个球的盒子,Bob无法继续操作,因此Alice获胜。你的任务是找出谁会获胜。假定两人都很聪明,总是采取最优策略。
输入
输入最多包含300组测试数据。每组数据仅一行,包含一个整数n(2<=n<=109)。输入结束标志为n=0。
输出
对于每组数据,输出胜者的名字。
样例输入
2
3
4

0

样例输出

Alice
Bob

Alice

分析:通过找规律,我可以的到,只要给出的数据是2^n-1那么就是Bob赢,反之就是Alice赢

代码:

#include<iostream>
#include<cmath>
using namespace std;
int pow(int p){
int sum=1;
while(p){
sum=sum*2;
p--;
}
return sum;
}
int main(){
int n;
int i,j;
while(cin>>n&&n>0){
int temp=0;
for(int i=1;pow(i)-1<=n;i++){
if(n==pow(i)-1){temp++;}}
if(temp==0){cout<<"Alice"<<endl;}
else{cout<<"Bob"<<endl;}
}
return 0;
}

最新文章

  1. jQ选择器学习片段(JavaScript 部分对应)
  2. Struts(八):动态方法调用
  3. ASP.NET Web API 的简单示例
  4. C#中 导入和导出Excel的方法
  5. [bzoj 1911][Apio 2010]特别行动队(斜率优化DP)
  6. DP ZOJ 3872 Beauty of Array
  7. Swift - 手势识别
  8. uva 165
  9. windows下建立文件的换行符^M导致linux下的shell脚本执行错误的解决方式
  10. ERROR 2003 (HY000): Can&amp;#39;t connect to MySQL server on &amp;#39;10.16.115.101&amp;#39; (111)
  11. 【翻译】编译Cordova项目
  12. Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理
  13. IntelliJ IDEA 中文乱码配置
  14. SpringBoot------全局异常捕获和自定义异常
  15. node学习系列 搭建express
  16. JAVA编程思想学习笔记2-chap4-6-斗之气2段
  17. es-05-获取 resthighlevelclient及api
  18. 使用Vmware安装linux且配置终端可以连接虚拟机总结
  19. Code faster with Intellij IDEA live templates
  20. wordpress搭建博客上传begin主题The themes is locked to another domain

热门文章

  1. Research notes for Scientific Writing
  2. java基本数据类型转换成byte[]数组
  3. js下firstElementChild firstChild 以及childNodes和children方法
  4. Oracle判断指定列是否全部为数字
  5. TEXT文本编辑框2
  6. 为数据元素DATA Element分配搜索帮助
  7. 关于在打包Jar文件时遇到的资源路径问题(一)
  8. Eclipse Maven 插件地址
  9. HDU4712-----Hamming Distance------超级大水题
  10. 使用malloc分别分配2KB,6KB的内存空间,打印指针地址