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 |
我要哭了,wa了不下几十次了。。。。笨死了。。。哪位大侠帮忙看看哦。。。#include<stdio.h> #include<stdlib.h> #include<math.h> #define E 0.0000000000000001 int gcd(int a,int b) { if (b==0) return a; else { return gcd(b,a%b); } } main() { int n,d; int i; double min ; double data; int tmp; double tmpdata; int tmpn,tmpd; min =32768; scanf("%d%d",&n,&d); /*if (n==d) { printf("32766 32767\n"); return 0; } if ((n==1)&&(d==32767)) {printf("1 32766\n"); return 0;}*/ data = (double)n/d; for (i=1; i<=32767; i++) { tmp = (int) floor(i*data); tmpdata = fabs((double)(tmp-1)/i-data) ; if (tmpdata < E) tmpdata = 32768.0; if (tmpdata <= min) { min = tmpdata; tmpn = tmp-1; tmpd = i; } tmpdata = fabs((double)tmp/i-data) ; if (tmpdata < E) tmpdata = 32768.0; if (tmpdata < min) { min = tmpdata; tmpn = tmp; tmpd = i; } if (tmpdata < E) tmpdata = 32768.0; tmpdata = fabs((double)(tmp+1)/i- data); if (tmpdata <min) { min = tmpdata; tmpn = tmp+1; tmpd = i; } } tmp = gcd(tmpn,tmpd);/*求最大公约数*/ printf("%d %d\n",tmpn/tmp,tmpd/tmp); return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator