zoukankan      html  css  js  c++  java
  • 浮点数加法

    先将整数部分和小数部分对齐,后面就跟高精度加法类似思路了,最后将末尾多余的零删除。

    string sa,sb;
    
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            cin>>sa>>sb;
    
            int posa=sa.find('.'),posb=sb.find('.');
            int ra=sa.size()-posa,rb=sb.size()-posb;
    
            if(posa > posb) sb=string(posa-posb,'0')+sb;
            else sa=string(posb-posa,'0')+sa;
    
            if(ra > rb) sb=sb+string(ra-rb,'0');
            else sa=sa+string(rb-ra,'0');
    
            reverse(sa.begin(),sa.end());
            reverse(sb.begin(),sb.end());
    
            int carry=0;
            string res;
            for(int i=0;i<sa.size();i++)
            {
                if(sa[i] == '.')
                {
                    res+='.';
                    continue;
                }
                int t=(sa[i]-'0')+(sb[i]-'0')+carry;
                res+='0'+t%10;
                carry=t/10;
            }
            if(carry) res+='0'+carry;
    
            reverse(res.begin(),res.end());
    
            while(res[res.size()-1] == '0') res.erase(res.size()-1);
    
            cout<<res<<endl;
        }
        //system("pause");
        return 0;
    }
    
  • 相关阅读:
    day09 文件操作
    深信服二面
    test1
    视频测试
    通过独立按键控制LED灯
    第一个LED灯
    为什么我的递归调用次数和书上的不一样?
    函数指针数组
    虚拟内存
    单元测试
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14403893.html
Copyright © 2011-2022 走看看