• C++高精度模板


    #include <iostream>
    #include <string>
    #include <vector>
    
    using namespace std;
    
    // 两个高精度整数相加
    vector<int> add (vector<int> &A, vector<int> &B) {
        vector<int> ans;
        int t = 0;
        for (int i = 0; i < A.size() || i < B.size(); i++) {
            if (i < A.size()) t += A[i];
            if (i < B.size()) t += B[i];
            ans.push_back(t % 10);
            t /= 10;
        }
        if (t) ans.push_back(1);
    
        return ans;
    }
    
    
    // A, B非负 并且 A.size() > B.size()
    vector<int> sub (vector<int> &A, vector<int> &B) {
        vector<int> ans;
    
        int t = 0;
        for (int i = 0; i < A.size(); i++) {
            t = A[i] - t;
            if(i < B.size()) t -= B[i];
            ans.push_back((t + 10) % 10);
            if (t < 0) t = 1; //判断借位
            else t = 0;
        }
        while(ans.size() > 1 && ans.back() == 0){
            ans.pop_back();
        }
    
        return ans;
    }
    
    // A / b,  商 是c 余数是 r
    vector<int> div(vector<int> A, int b, int &r) {
        vector<int> ans;
        r = 0;
        for (int i = A.size() - 1; i >= 0; i--) {
            r = r * 10 + A[i];
            ans.push_back(r / b);
            r %= b;
        }
        reverse(ans.begin(), ans.end());
        while (ans.size() > 1 && ans.back() == 0) ans.pop_back();
        return ans;
    }
    
    
    
    int main () {
        string a;
        string b;
        vector<int> A, B, ans;
        cin >> a >> b;
        for (int i = a.size() - 1; i >= 0; i--) A.push_back(a[i] - '0');
        for (int i = b.size() - 1; i >= 0; i--) B.push_back(b[i] - '0');
        ans = add(A, B);
        for (int i = ans.size() - 1; i >= 0; i--) {
            printf("%d", ans[i]);
        }
        return 0;
    }
    
  • 相关阅读:
    nacos 配置优先级
    spring cloud 依赖查询
    树-数据结构
    CI/CD + docker 综合实战
    CICD:CentOS 下 Jenkins 安装
    生产环境 OOM 与 GC 问题的处理思路
    如何优雅的进行接口管理
    合并多个Execl 电子表格 java poi
    深入了解数据导入的一些解决方案
    浅谈导出Execl的报表数据解决方案
  • 原文地址:https://www.cnblogs.com/DengSchoo/p/14090809.html
Copyright © 2020-2023  润新知