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;
}

 

posted @ 2015-08-08 15:28  _Nestling  阅读(176)  评论(0编辑  收藏  举报