zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    SQL之层次查询
    GROUP函数
    SQL之统计
    正则表达式
    聚合函数,分析函数
    oracle函数
    Vue3.0优化
    浅谈FC
    短链接生成原理
    Vue路由传参
  • 原文地址:https://www.cnblogs.com/DengSchoo/p/14090809.html
Copyright © 2011-2022 走看看