| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:一个奇怪的现象!In Reply To:Re:一个奇怪的现象! Posted by:zhujie at 2006-03-12 22:52:22 仔细推敲一下1 2的输出,不要到处乱怀疑
> #include <stdio.h>
> #include <math.h>
>
> #define EPI 1e-14
> bool More(double x,double y)
> {
> return (x - y > EPI);
> }
> bool Equal(double x,double y)
> {
> return (fabs(x - y) < EPI);
> }
> int main()
> {
> int gain,loss,Deno,Mole;
> double Brate,Arate,Crate;
> bool ok;
> while (scanf("%d%d",&gain,&loss) != EOF)
> {
>
> Arate = Brate = double(gain) / loss;
> Deno = 1;
> while (Deno <= loss)
> {
> ok = false;
> Mole =int(ceil(Deno * (Arate - Brate)));
> if (Mole == 0) Mole ++;
> while (1)
> {
> Crate = double(Mole) / Deno;
>
> if (Equal(Crate,Arate-Brate)) {Mole ++ ;continue;}
> if (More(Crate,Arate+Brate) || Equal(Crate,Arate+Brate)) break;
> Brate = fabs(Crate - Arate);
> ok = true;
> Mole ++;
> }
> if (ok) printf("%d/%d\n",Mole-1,Deno);
> Deno++;
> }
> printf("\n");
> }
> return 0;
> }
> 这个是我的程序。自己实在是查不出哪错了,看看有没有哪个好心人帮帮忙看看 :)万分感谢!
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator