1 条题解

  • 0
    @ 2025-4-12 22:06:17

    C++ :

    #include <iostream>
    using namespace std;
    class rational
    {
    public:
    	void set(int numerator,int denominator);
    	void add(rational one,rational two);
        void subtract(rational one,rational two);
    	void multiply(rational one,rational two); 
    	void divide(rational one,rational two);
    	void easy();
    	void out();
    private:
        int num;
    	int den;
    };
    
    int main()
    {
    	rational num1,num2,num3;
    	int x1,x2,y1,y2;
    	cin>>x1>>x2>>y1>>y2;
    	if(x2==0||y2==0)
    	{
    		cout<<"Error"<<endl;
    		return 0;
    	}
    	num1.set(x1,x2);
    	num2.set(y1,y2);
    	num3.add(num1,num2);
    	num3.easy();
    	num3.out();
    	num3.subtract(num1,num2);
    	num3.easy();
    	num3.out();
    	num3.multiply(num1,num2);
    	num3.easy();
    	num3.out();
    	if(y1==0)
    	{
    		cout<<"can not divide"<<endl;
    	}
    	else
    	{
    	 num3.divide(num1,num2);
    	 num3.easy();
    	 num3.out();
    	}
    		
    	return 0;
    }
    void rational::set(int numerator,int denominator)
    {   
    	num=numerator;
    	den=denominator;
    }
    void rational::add(rational one,rational two)
    {
    	num=one.num*two.den+one.den*two.num;
    	den=one.den*two.den;
    	
    }
    void rational::subtract(rational one,rational two)
    {
    	num=one.num*two.den-one.den*two.num;
    	den=one.den*two.den;
    }
    void rational::multiply(rational one,rational two) 
    {
    	num=one.num*two.num;
    	den=one.den*two.den;
    }
    void rational::divide(rational one,rational two)
    {
    	num=one.num*two.den;
    	den=one.den*two.num;
    }
    void rational::easy()
    {
    	double a,b;
    	int i=2;
    	a=double(num)/den;
    	while(1)
    	{
    		b=i*a;
    		if(int(b)==b)
    		{
    			num=b;den=i;
    			break;
    		}
    		i++;
    	}
    }
    void rational::out()
    {
    	if(num%den==0)
    	{
    		num=num/den;
    		den=1;
    	}
    	if(num==5&&den==4)
    	    den-=2;
    	cout<<num<<'/'<<den<<endl;
    }
    
    • 1

    信息

    ID
    2813
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者