zoukankan      html  css  js  c++  java
  • [Math_Medium] 592. Fraction Addition and Subtraction

    原题:592. Fraction Addition and Subtraction

    题目大意:

    给出一个分数字符串式子(分子分母都是1~10),求其和

    解题思路:

    利用stringstream,它可以自动地实现字符串和数字之间的转换,比如 -1/2,可以输出为-1,/,2,把每个数取出来后就通分进行计算

    代码:

    class Solution{
        public:
        int gcd(int a,int b)
        {
            int c=0;
            while(b)
            {
                c=a%b;
                a=b;
                b=c;
            }
            return a;
        }
        string fractionAddition(string expression) {
            stringstream  s(expression);
            int a1=0,b1=0,a2=0,b2=0,temp=0,k=0;
            char c;
            s>>b1;//分子
            s>>c;//符号
            s>>a1;//分母
            while(s>>b2)
            {
                s>>c;
                s>>a2;
                temp=gcd(a1,a2);
                k=a1;
                a1=a1*a2/temp;
                b1=b1*(a1/k)+b2*(a1/a2);
                temp=gcd(a1,abs(b1));//注意分母不会为负数,只有分子为负数,所以确保最大公约数为正数,需要取绝对值
                a1/=temp;
                b1/=temp;
            }
            return to_string(b1)+"/"+to_string(a1);
        }
    };
    

    以上

  • 相关阅读:
    1219 总结
    1206 冲刺三
    1130 冲刺2
    1128 主页面
    1123 冲刺3
    1121 冲刺2
    1118 冲刺1
    1117 新冲刺
    0622 软件工程总结
    0617 实验四 主存空间的分配和回收
  • 原文地址:https://www.cnblogs.com/qiulinzhang/p/9514346.html
Copyright © 2011-2022 走看看