POJ 1067 (威佐夫博弈)
利用公式:判断第一个数是否等于差值*1.618;1.618=(1+sqrt(5))/2;
#include<iostream> #include<cmath> #include<cstdio> #include<algorithm> using namespace std; int main() { int a,b,c,flag; double m; while(~scanf("%d%d",&a,&b)) { flag=0; if(a>b) swap(a,b); c=b-a; m=(1+sqrt(5))/2; if(a==floor(m*c)) flag=1; if(flag) printf("0\n"); else printf("1\n"); } return 0; }