首页 > 其他分享 >高精度模板

高精度模板

时间:2022-08-28 22:14:19浏览次数:54  
标签:10 高精度 int back vector push 模板 size

赌一手今年 CSP 必考高精。

加法:

#include <bits/stdc++.h>
using namespace std;

string a, b;

vector<int> add(vector<int> A, vector<int> B) {
    if (A.size() < B.size()) return add(B, A);
    vector<int> C;
    int t = 0;
    for (int i = 0; i < A.size(); i++) {
        t += A[i];
        if (i < B.size()) t += B[i];
        C.push_back(t % 10);
        t /= 10;
    }
    if (t) C.push_back(t);
    return C;
}

void output(vector<int> C) {
    for (int i = C.size() - 1; i >= 0; i--) cout << C[i];
}

int main() {
    vector<int> A, B;
    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');
    vector<int> C = add(A, B);
    output(C);
}

减法、

#include <bits/stdc++.h>
using namespace std;

string a, b;

vector<int> add(vector<int> A, vector<int> B) {
    if (A.size() < B.size()) return add(B, A);
    vector<int> C;
    int t = 0;
    for (int i = 0; i < A.size(); i++) {
        t = A[i] - t;
        if (i < B.size()) t -= B[i];
        C.push_back((t + 10) % 10);
        if (t < 0) t = 1;
        else t = 0;
    }
    while (C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}

void output(vector<int> C) {
    for (int i = C.size() - 1; i >= 0; i--) cout << C[i];
}

int main() {
    vector<int> A, B;
    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');
    vector<int> C = add(A, B);
    output(C);
}

乘法(高精*低精)

#include <bits/stdc++.h>
using namespace std;

string a;
int b;

vector<int> mul(vector<int> A, int b) {
    vector<int> C;
    int t = 0;
    for (int i = 0; i < A.size(); i++) {
        t += A[i] * b;
        C.push_back(t % 10);
        t /= 10;
    }
    while (t) {
        C.push_back(t % 10);
        t /= 10;
    }
    while (C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}

void output(vector<int> C) {
    for (int i = C.size() - 1; i >= 0; i--) cout << C[i];
}

int main() {
    vector<int> A;
    cin >> a >> b;
    for (int i = a.size() - 1; i >= 0; i--) A.push_back(a[i] - '0');
    output(mul(A, b));
}

除法(高精/低精)

#include <bits/stdc++.h>
using namespace std;

string a;
int b, r;

vector<int> div(vector<int> A, int b) {
    vector<int> C;
    for (int i = 0; i < A.size(); i++) {
        r = r * 10 + A[i];
        C.push_back(r / b);
        r %= b;
    }
    reverse(C.begin(), C.end());
    while (C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}

void output(vector<int> C) {
    for (int i = C.size() - 1; i >= 0; i--) cout << C[i];
    puts("");
    cout << r << endl;
}

int main() {
    vector<int> A;
    cin >> a >> b;
    for (int i = 0; i < a.size(); i++) A.push_back(a[i] - '0');
    output(div(A, b));
}

标签:10,高精度,int,back,vector,push,模板,size
From: https://www.cnblogs.com/stOtue/p/16633823.html

相关文章

  • 模板——数据结构
    线段树维护区间最值以及满足最值的个数structSGT{ intmx[N<<2],tg[N<<2],su[N<<2]; #definemid((l+r)>>1) #definelc(u<<1) #definerc((u<<1)|1) voidbld(......
  • 最长上升子序列【模板】
     P1439【模板】最长公共子序列-洛谷|计算机科学教育新生态(luogu.com.cn)n^2的最长上升子序列解法#include<iostream>usingnamespacestd;intdp[1001][100......
  • C++ 之函数模板
    C++之函数模板函数的参数类型不确定,这样就可以使用泛型。//类型参数化C++中称之为泛型编程--模板技术template<classT>//告诉编译器,下面如果出现T不要报错,T是......
  • 简单动态变量文本模板
    TemplateUtils工具类importlombok.experimental.UtilityClass;importorg.springframework.cglib.beans.BeanMap;importjava.util.*;importjava.util.regex.Matche......
  • Django入门到放弃之模板及标签
    1.django模板使用的两种方式#方式一 returnrender(request,'time.html',context={'current_date':str(now),'title':'lqzNB'})#方式二(页面静态化,提高网站并发量)......
  • 可变参数模板
    获取参数个数template<class...T>voidf(T...args){cout<<sizeof...(args)<<endl;//打印变参的个数}f();//0f(1,2);//2f(1,2.5,"......
  • smarty模板引擎中变量及变量修饰器用法实例
    smarty模板引擎中变量及变量修饰器用法实例_php实例_脚本之家 https://www.jb51.net/article/60243.htm本文实例讲述了smarty变量及变量修饰器的应用。分享给大家供大家......
  • EYOUCMS模板如何打包备份(搬家教程)
    1,本地备份数据库2,删除install_********目录下的install.lock文件3,再改名install_1540256968为install4,删除data/runtime所有文件夹5,打包根目录下所有文件,上传空间解压即......
  • IDEA的模板及配置
    什么是模板什么是模板?简单的理解就是配置一些字母缩写。使用简写的方式,就能出现预定义的固定代码。这样做可以大大提高开发效率。最常见的就是输入 sout就会出现 Syst......
  • Shopify Spark主题模板配置修改
    对于那些正在启动业务的shopify卖家来说,Spark主题是很好的选择,它跨越了你的愿景和市场之间的差距,将美感和必要性结合在一起,这样你就可以用最小的触角将事情进行下去。通过......