首页 > 其他分享 >写了个高精度加法板子

写了个高精度加法板子

时间:2023-11-10 18:11:38浏览次数:34  
标签:高精度 int na 板子 a1 -- b1 加法 size

#include<bits/stdc++.h>
using namespace std;
const int N=1e4+9;
int a1[1000],b1[1000],ans[1000];
void add(int a[],int b[],int na,int nb){
int t=0;
if(na<nb)return add(b,a,nb,na);
for(int i=0;i<na;i++){
t+=a[i];
if(i<nb)t+=b[i];
ans[i]=t%10;
t/=10;
}
if(t)ans[na]++;
if(t)
for(int i=na;i>=0;i--){
printf("%d",ans[i]);
}
else for(int i=na-1;i>=0;i--){
printf("%d",ans[i]);
}
}
int main()
{
   char a[1000],b[1000];
scanf("%s%s",a,b);int na=strlen(a),nb=strlen(b);
for(int i=strlen(a)-1;i>=0;--i){
a1[na-i-1]=a[i]-'0';
}
for(int i=strlen(b)-1;i>=0;--i){
b1[nb-i-1]=b[i]-'0';
}
add(a1,b1,na,nb);

    return 0;
}

#include<bits/stdc++.h>  
using namespace std;  
const int N=1e4+9;  
vector<int> add(vector<int>&a, vector<int>&b){
    //含有前导0时,54321和43210000,从“尾部”开始相加,没有任何影响
    if(a.size()<b.size())return add(b,a);
    vector<int> c;int n=a.size();int t=0;
    for(int i=0;i<n;++i){
        if(i<b.size())t+=b[i];
        t+=a[i];
        c.push_back(t%10);
        t/=10;
    }
    if(t)c.push_back(1);
    return c;
    
}
int main(){
    //ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    string a1,b1;
    cin>>a1>>b1;
    vector<int> a,b;
    for(int i=a1.size()-1;i>=0;i--){
        a.push_back(a1[i]-'0');
    }
    for(int i=b1.size()-1;i>=0;i--){
        b.push_back(b1[i]-'0');
    }
    //倒序输入如12345被存为54321
    
    for(int i=add(a,b).size()-1;i>=0;--i){
        cout<<add(a,b)[i];
    }
    
    return 0;  
}

标签:高精度,int,na,板子,a1,--,b1,加法,size
From: https://www.cnblogs.com/csblacktea/p/17824753.html

相关文章

  • 【板子申请】Ai-M61-32S开发环境搭建-wuboy19
    【板子申请】Ai-M61-32S开发环境搭建-wuboy19window10vscode环境安装vscode官网下载windows版本图1官网界面图图2安装成功图博主百度网盘下载百度网盘链接提取码:9jydgit安装git官网下载链接图3git安装过程图博主网盘下载git百度网盘链接提取码:n3z......
  • 树套树板子,但是带修莫队+值域分块
    \(\text{Link-LuoguBlog}\)原题传送门没啥重要的事情,就是终于过了这题非常开心,发现自己是莫队的时间戳部分写错了调了114514年我也只能说是十分趣味。以及今天深刻地认识到了带修莫队应该len=pow(n,0.66);。就是裸的带修莫队+值域分块,就不说了,直接放代码了昂。如果有人......
  • 高精度
    #include<bits/stdc++.h>#defineN20005#defineM40005#definelllonglong#defineahz.w#definebkz.w#defineckzkz.w#definedkzzf.w#definehphz.p#definekpkz.p#definecpkzkz.p#definedpkzzf.p#defineP998244353#defineinv(x)ksm(x......
  • 三坐标测量机轮廓度测量操作指南:打造高精度测量解决方案
    在现代制造业中,精确度和质量控制是至关重要的因素。而对于产品的尺寸和形状的测量,三坐标测量机成为了一种重要工具。一、为什么选择三坐标测量机?三坐标测量机是一种能够精确测量物体三维尺寸和形状的设备。相较于传统的测量工具,三坐标测量机具有以下优势:高精度:三坐标测量机采用先......
  • 数据结构三元顺序表稀疏矩阵的加法程序
    三元顺序表稀疏矩阵的加法三元顺序表是什么?稀疏矩阵又是什么?稀疏矩阵的加法和普通矩阵的加法有什么不同?你看到这些是不是都有些困惑。那么现在我们就来讲讲这些陌生的东西。三元顺序表将稀疏矩阵非零元素对应的三元组所构成的集合,按照行优先的顺序排列成一个线性表,毫无疑问......
  • 板子速查
    线性求逆元\[\begin{align*}i\cdotk+r&=0\pmodp\\k+r\cdoti^{-1}&=0\pmodp\\k\cdotr^{-1}+i^{-1}&=0\pmodp\\i^{-1}&=-k\cdotr^{-1}\pmodp\end{align*}\] inv[1]=1; for(inti=2;i<N;++i) ......
  • 一些可能用得上的板子
    复数模板点击查看代码structComplex{doubler,i;//realpart,imaginarypartComplex(doubler=0,doublei=0):r(r),i(i){}//abc怎么你了?Complexoperator+(constComplex&other)const{returnComplex(r+other.r,i+other.i);}Comp......
  • AT2505板子调试
    1、连接J-Link  在这个目录下说命令找不到 JLinkGDBServer-deviceStar  sudodpkg-i*.deb 2、连接串口打印线(TX-RX,RX-TX,GND-GND)sudominicom-D/dev/ttyUSB0 打开串口调试窗口 3、仿真 注意:J-link一连接后会一直打印奇奇怪怪的乱码,不用管,刚连接后......
  • 高精度减法(C语言实现)
    高精度减法(C语言实现)介绍众所周知,整数在C和C++中以int,long,longlong三种不同大小的数据存储,数据大小最大可达2^64,但是在实际使用中,我们仍不可避免的会遇到爆longlong的超大数运算,这个时候,就需要我们使用高精度算法,来实现巨大数的运算。高精度的本质是将数字以字符串的形式......
  • 高精度加法(C语言实现)
    高精度加法(C语言实现)介绍众所周知,整数在C和C++中以int,long,longlong三种不同大小的数据存储,数据大小最大可达2^64,但是在实际使用中,我们仍不可避免的会遇到爆longlong的超大数运算,这个时候,就需要我们使用高精度算法,来实现巨大数的运算。高精度的本质是将数字以字符串的形式......