4 条题解

  • 2
    @ 2022-12-23 23:45:01
    #include<iomanip>
    #include<stdio.h>
    #include<math.h>
    #include<cstring>
    using namespace std;
    int main(){
    	int a,b,c,d;
    	cin>>a>>b>>c>>d;
    	cout<<a<<"/"<<b<<"+"<<c<<"/"<<d<<"=";
    	int x,y;
    	x=b*d;//分母
    	y=a*d+b*c;//分子
    	int r,ax,in;
    	ax=max(x,y);//大数(用来求最大公倍数)
    	in=min(x,y);//小数
    	r=ax%in;//r为余数
    	while(r!=0){//while求最大公倍数来化简
    		ax=in;
    		in=r;
    		r=ax%in;
    	}
    	int aa,bb,zs;//约分后的分子分母与输出答案的整数部分
    	aa=y/in;
    	bb=x/in;
    	if(aa>bb){//求整数部分
    		zs=(aa-aa%bb)/bb;
    		aa%=bb;
    		cout<<zs<<"+"<<aa<<"/"<<bb;
    	}else{//分情况
    		cout<<aa<<"/"<<bb;
    	}
    	return 0;
    }
    
    • 1
      @ 2023-3-28 21:05:25
      #include <bits/stdc++.h>//直接使用万能头
      using namespace std;
      int gcd(int a,int b){
      	if(b == 0){
      		return a;
      	}
      	return gcd(b,a % b);
      }
      int main(){
      	int a,b,c,d;
      	cin >> a >> b >> c >> d;
      	int aa = a * d + b * c,bb = b * d,x = gcd(aa,bb);
      	aa /= x;
      	bb /= x;
      	if(aa > bb){
      		cout << a << "/" << b << "+" << c << "/" << d << "=" << aa / bb << "+" << aa % bb << "/" << bb;
      	}
      	else{
      		cout << a << "/" << b << "+" << c << "/" << d << "=" << aa << "/" << bb;
      	}
      	return 0;
      	}
      
      • 1
        @ 2022-8-26 18:31:06
        #include <stdio.h>
        #include <iostream>
        using namespace std;
        int main()
        {
        	int a, b, c, d;
        	cin >> a >> b >> c >> d;
        	// printf("%d/%d+%d/%d=",a,b,c,d);
        	cout << a << "/" << b << "+" << c << "/" << d << "=";
        	int y = b*d;
        	int x = a*d + c*b;
        	if(x>y)
        	{
        		cout << x/y;
        		x = x%y;
        		if(x%y !=0)
        		{
        			cout << "+";
        		}
        	}
        	a = x, b = y;
        	while(b)
        	{
        		int t = a%b;
        		a = b;
        		b = t;
        	} 
        	if(a != 0)
        	{
        		x = x/a;
        		y = y/a;
        		cout << x << "/"<<y<<endl;
        
        	}
        }
        
        • 0
          @ 2024-3-31 18:31:47
          #include <bits/stdc++.h> //使用万能头
          using namespace std;
          int zdgys(int a,int b){ //用辗转相除法求最大公因数(a,b)
          	int t;
          	if(a < b){ //a和b的值交换
          		t = a;
          		a = b;
          		b = t;
          	}
          	while(a % b != 0){ //开始辗转相除法
          		t = b;
          		b = a % b;
          		a = t;
          	}
          	return b;
          }
          int zxgbs(int a,int b,int c){ //求最小公倍数[a,b],c为最大公因数(a,b)
          	return a * (b / c);
          }
          int a,b,c,d,e,f,g,jga,jgb;
          int main(){
          	cin >> a >> b >> c >> d;
          	cout << a << "/" << b << "+" << c << "/" << d << "=";
          	e = zdgys(b,d);      //
          	f = zxgbs(b,d,e);    //
          	a = a * (f / b);     //通
          	b = f;               //分
          	c = c * (f / d);     //
          	d = f;               //
          	jga = a + c;
          	jgb = b;
          	g = jga / jgb;
          	jga %= jgb;
          	e = zdgys(jga,jgb);
          	if(e != 1){          //
          		jga /= e;        //约
          		jgb /= e;        //分
          	}                    //
          	if(g == 0) cout << jga << "/" << jgb << endl;
          	else cout << g << "+" << jga << "/" << jgb << endl;
          	return 0;
          }
          
          • 1

          信息

          ID
          907
          时间
          1000ms
          内存
          128MiB
          难度
          5
          标签
          递交数
          305
          已通过
          123
          上传者