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
");
        else
            printf("1
");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/cn-blog-cn/p/4713225.html