zoukankan      html  css  js  c++  java
  • 大数的加减乘除

    利用string类或整形数组可以实现大数的加减乘除。string类具有较好的动态增长性,整形数组处理数字的运算比较方便。

    两者都是将运算的对象按照各个数位保存起来,每个数位按照对应的运算法则进行运算。

    #include <string>
    using namespace std;

    1. 大数相加 

    string BigAdd(string a, string b)
    {
        if (a.empty())
        {
            return b;
        }
        if (b.empty())
        {
            return a;
        }
        if (a.size() < b.size())
        {
            a.insert(a.begin(), b.size() - a.size(), '0');
        }
        if (a.size() > b.size())
        {
            b.insert(b.begin(), b.size() - b.size(), '0');
        }
        int len = a.size();
        int carry = 0;
        for (int i = len - 1; i >= 0; --i)
        {
            int sum = a[i] - '0' + b[i] - '0' + carry;
            a[i] = sum % 10 + '0';
            carry = sum / 10;
        }
        if (carry)
        {
            a.insert(a.begin(), 1, static_cast<char> (carry + '0'));
        }
        return a;
    }
  • 相关阅读:
    Unit of Work
    Layered Supertype
    Domain Model
    ASP.Net设计模式读书笔记
    VS2010无法使用nuget安装第三方包的问题
    数据库对象命名
    sql50题
    RESTFul API
    EasyUI日历控件
    ASP.NET MVC 防止前端点击劫持
  • 原文地址:https://www.cnblogs.com/gardonkoo/p/7494393.html
Copyright © 2011-2022 走看看