博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
威佐夫博奕(二)
阅读量:6086 次
发布时间:2019-06-20

本文共 890 字,大约阅读时间需要 2 分钟。

有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。如果你胜,你第1次怎样取子?
Input输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,且a<=b。a=b=0退出。
Output输出也有若干行,如果最后你是败者,则为0,反之,输出1,并输出使你胜的你第1次取石子后剩下的两堆石子的数量x,y,x<=y。如果在任意的一堆中取走石子能胜同时在两堆中同时取走相同数量的石子也能胜,先输出取走相同数量的石子的情况.
Sample Input
1 2 5 84 72 20 0
Sample Output
014 73 5010 01 2
#include
#include
#include
using namespace std;int main(){ double a,b; while(scanf("%lf%lf",&a,&b)&&(a||b)) { double t; if(a>b) { t=b;b=a;a=t; } t=b-a; if((int)(t*(1+sqrt(5))/2)==(int)a) printf("0\n"); else { printf("1\n"); for(int i=0;i

 

转载于:https://www.cnblogs.com/xzxj/p/7236437.html

你可能感兴趣的文章
数组的处理方法,filter的用法
查看>>
Python 集合方法总结
查看>>
Python的语言特性
查看>>
codeigniter 中使用 phpexcel
查看>>
JVM监控和调优常用命令工具总结
查看>>
机器学习实战-边学边读python代码(5)
查看>>
对forEach、for-in还有es6的for-of的一些整理
查看>>
基本类型间的类型转换(数值型)
查看>>
docker 容器管理
查看>>
JavaScript 作用域
查看>>
公钥私钥RSA加密
查看>>
MVC5使用SignalR进行双向通信(1)
查看>>
手机号验证正则表达式
查看>>
通过jQuery源码学习javascript(二)
查看>>
C++基础--完善Socket C/S ,实现客户端,服务器端断开重连
查看>>
cmd 窗口配置mysql数据库
查看>>
JAVA进阶26(多线程/01)
查看>>
4.下单函数
查看>>
Shell 编程中的常用工具
查看>>
gsoap 学习 1-由wsdl文件生成h头文件
查看>>