栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

带你彻底弄懂【高精度加法】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

带你彻底弄懂【高精度加法】

目录

一:高精度加法的意义

二:题目描述

三:算法思路

四:代码模板 


一:高精度加法的意义

答:高精度加法适用于数位很多的数字的加法,比如两个数字a和b,len(a)= 100,说明a有一百位,显然int和long long int都无法存储这么大的数据,这时候这需要高精度加法来实现对两个数字的相加。

注:python和java内部有高精度加法的库函数,所以不需要实现,但是c++没有,需要手动实现 


二:题目描述

 三:算法思路

1.以字符串的形式读入a,b

2.用vector的两个数组A,B分别存储a,b从个位开始的数字,比如A【0】存储的是a的个位,A【1】存储a的十位,以此类推

3.用t来存储进位

4.如果最后t不是0,说明还要进1


四:代码模板 
#include
#include

using namespace std;

vector add(vector&A,vector&B)
{
    int t = 0;
    vectorC;//存储答案
    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];
        C.push_back(t%10);
        t/=10;
    }
    if(t) C.push_back(1);
    return C;
}

int main(){
    string a,b;
    vector 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');
    auto C = add(A,B);
    for(int i = C.size()-1;i >= 0;i --)printf("%d",C[i]);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038505.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号