8 条题解

  • 0
    @ 2025-11-30 12:34:45

    三目运算的话代码更短

    #include<string.h>
    int gcd(int x,int y){
    	if(y==0)return x;
    	else return gcd(y,x%y);
    }
    int main(){
    	int a,b,c,d;
    	char sb;
    	while(scanf("%d/%d%c%d/%d",&a,&b,&sb,&c,&d)!=EOF){
    		int z;
    		int m;
    		if(sb=='+'){
    			z=a*d+b*c;
    		}
    		if(sb=='-'){
    			z=a*d-b*c;
    		}
    		m=b*d;
    		if(z==0){
    			printf("0\n");
    			continue;
    		}
    		int g;
    		if(z>0){
    			g=gcd(z,m);
    		}
    		if(z<0){
    			g=gcd(-z,m);
    		}
    		z/=g;
    		m/=g;
    		if(m==1){
    			printf("%d\n",z);
    		}
    		else{
    			printf("%d/%d\n",z,m);
    		}
    	}
    	return 0;
    }
    

    信息

    ID
    168
    时间
    3000ms
    内存
    128MiB
    难度
    7
    标签
    (无)
    递交数
    773
    已通过
    180
    上传者