现在的位置: 首页 > 综合 > 正文

poj3979

2014年02月05日 ⁄ 综合 ⁄ 共 522字 ⁄ 字号 评论关闭

水题,WA了一次,没有考虑到最终结果中 分子%分母 为0的情况

#include<cstdio>
#define abs(a) a>0?a:-a
 
int gcd(int a, int b) {
   int max, min;
   if(a > b) {
      max = a;
      min = b;
   } else {
      max = b;
      min = a;
   }
   int r = max%min;
   while(r != 0) {
      max = r;
      if(r < min) {
         max = min;
         min = r;
      }
      r = max%min;
   }
   return min;
}
 
int lcm(int a, int b) {
   int g = gcd(a, b);
   return a/g*b;
}
 
int main() {
   freopen("poj3979.txt", "r", stdin);
   int f1, f2, d1, d2;
   int f, d, g;
   while(scanf("%d/%d%d/%d", &f1, &d1, &f2, &d2) != EOF) {
      d = lcm(abs(d1), abs(d2));
      f = d/d1*f1 + d/d2*f2;
      if(f == 0) {
         printf("0\n");
      } else if(f%d == 0) {
         printf("%d\n", f/d);
      } else {
         g = gcd(d, abs(f));
         printf("%d/%d\n", f/g, d/g);
      }
   }
   return 0;
}

抱歉!评论已关闭.