盒子游戏(The Seventh Hunan Collegiate Programming Contest)
2024-10-12 12:28:10
盒子游戏
有两个相同的盒子,其中一个装了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;
}
最新文章
- jQ选择器学习片段(JavaScript 部分对应)
- Struts(八):动态方法调用
- ASP.NET Web API 的简单示例
- C#中 导入和导出Excel的方法
- [bzoj 1911][Apio 2010]特别行动队(斜率优化DP)
- DP ZOJ 3872 Beauty of Array
- Swift - 手势识别
- uva 165
- windows下建立文件的换行符^M导致linux下的shell脚本执行错误的解决方式
- ERROR 2003 (HY000): Can&;#39;t connect to MySQL server on &;#39;10.16.115.101&;#39; (111)
- 【翻译】编译Cordova项目
- Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理
- IntelliJ IDEA 中文乱码配置
- SpringBoot------全局异常捕获和自定义异常
- node学习系列 搭建express
- JAVA编程思想学习笔记2-chap4-6-斗之气2段
- es-05-获取 resthighlevelclient及api
- 使用Vmware安装linux且配置终端可以连接虚拟机总结
- Code faster with Intellij IDEA live templates
- wordpress搭建博客上传begin主题The themes is locked to another domain
热门文章
- Research notes for Scientific Writing
- java基本数据类型转换成byte[]数组
- js下firstElementChild firstChild 以及childNodes和children方法
- Oracle判断指定列是否全部为数字
- TEXT文本编辑框2
- 为数据元素DATA Element分配搜索帮助
- 关于在打包Jar文件时遇到的资源路径问题(一)
- Eclipse Maven 插件地址
- HDU4712-----Hamming Distance------超级大水题
- 使用malloc分别分配2KB,6KB的内存空间,打印指针地址