南阳 分数加减法

来源:互联网 发布:13年总决赛格林数据 编辑:程序博客网 时间:2024/05/21 04:20

http://acm.nyist.net/JudgeOnline/problem.php?pid=111

 

 

#include<stdio.h>//求最大公约数 int Gcd(int a,int b){int temp;if(a>b){temp=b;b=a;a=temp;}while(b!=0){temp=a%b;a=b;b=temp;}if(a>0)return a;else  //因为可能为负的 return -a;}int main(){int a,b,c,d;char ch;int temp1,temp2,temp;while(~scanf("%d/%d%c%d/%d",&a,&b,&ch,&c,&d)){if(ch=='+'){temp2=b*d;temp1=a*d+c*b;if(temp1==0)//这里要考虑分子是不是为零 ,如果为零,下面就没意义了 {printf("0\n");continue;}temp=Gcd(temp1,temp2);temp1/=temp;temp2/=temp;if(temp1%temp2==0)//这里要注意分子整除分母时的情况printf("%d\n",temp1/temp2);elseprintf("%d/%d\n",temp1,temp2);}if(ch=='-'){temp2=b*d;temp1=a*d-c*b;if(temp1==0){printf("0\n");continue;}temp=Gcd(temp1,temp2);temp1/=temp;temp2/=temp;if(temp1%temp2==0)printf("%d\n",temp1/temp2);elseprintf("%d/%d\n",temp1,temp2);}}return 0;}


 

0 0
原创粉丝点击