#include <iostream>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
const double PI=acos(-1.0);
int gcd(int a,int b)
{
return a%b?gcd(b,a%b):b;
}
int dblcmp(double x)
{
//const double EPS=0.00001;
const double EPS=1.0e-5;
if(fabs(x)<EPS)return 0;
return x<0?-1:1;
}
int main(){
int i;
double aim;
int a,b,c;
//freopen("1.txt","r",stdin);
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a==0&&b==0&&c==0)break;
//if(a==0||b==0||c==0)while(1);
a*=16;
b*=16;
int d=gcd(a,b);
//d=gcd(d,c);
d=1;
a/=d;
b/=d;
c/=d;
double pa=0;//black 中白色比例
double pb=1;//white 中白色比例
double aim=a*1.0/b;
double pa1,pb1;
//printf("aim=%f\n",aim);
int ans=0;
do
{
//pb=(c*pa+b*pb)/(c+b);
//pa=((a-c)*pa+pb*c)/a;
pb1=(c*pa+b*pb)/(b+c);
pa1=(((a-c)*(b+c)+c*c)*pa+b*c*pb)/(a*(b+c));
ans++;
pa=pa1;
pb=pb1;
//printf("pa=%f pb=%f\n",pa,pb);
//if(dblcmp(pa)==0||dblcmp(pb)==0)break;
}
while(dblcmp((1-pa)/pa-aim)!=0||dblcmp(aim-(1-pb)/pb)!=0);
//while(dblcmp(pa-pb)!=0);
printf("%d\n",ans);
}
return 0;
}
poj2715
最新推荐文章于 2019-01-10 11:29:22 发布