Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 33061 | Accepted: 10990 |
Description
Input
Output
Sample Input
2 1 8 4 4 7
Sample Output
0 1 0
Source
解题思路:
An = [(1 + sqrt(5)) / 2 * n], Bn = [(3 + sqrt(5)) / 2 * n] bn-an=n
如果a,b为奇异局势,则先取者必败。
代码:
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int main() { int ak,bk; double x=(1+sqrt(5))/2; while(cin>>ak>>bk) { if(ak>bk) swap(ak,bk); int n=bk-ak; if(ak==(int)(n*x)) cout<<0<<endl; else cout<<1<<endl; } return 0; }
还有一种方法,O(1)内解决, 不过没怎么看懂。。。http://www.freopen.com/?p=10512
原文:http://blog.csdn.net/hadstj/article/details/23167809