栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

AcWingday2(高精度)

AcWingday2(高精度)

高精度

1.大数据存储

数组:0 1 2 3 4 5 6 7 8

数据:9 8 7 6 5 4 3 2 1

这样把高位存在后面是因为在进行运算的时候可能会产生进位,所以放在后面方便,要是放在前面的话产生进位存储的时候需要把后面的都往后移麻烦。

(1)加法: 模拟竖式:

A3 A2 A1 A0

+ B2 B1 B0

---------------------------------

                                       

让从A0和B0相加然后 和10 取余,余数作为结果,若相加的结果大于10了则前面要加1

所以让每一位都是A0+B0+t

代码:
#include
#include 

using namespace std;

const int N=1e6+10; 

vector add(vector &A,vector &B)
{
    vector C;
    int t=0;  //进位
    for(int i=0;i A,B;
    cin>>a>>b;  //例如输入a=“123456”
    //读入的是字符串类型,但是容器是int类型,push_back的时候是读入的是字符型a[i]='6',然后相减的到整形的数
    for(int i=a.size()-1; i >= 0; i--) A.push_back(a[i]-'0'); //容器从前往后是654321 
    for(int i=b.size()-1; i >= 0; i--) B.push_back(b[i]-'0');
    auto C=add(A,B);  //自动选择类型  此处auto=vector
    for(int i=C.size()-1; i>= 0; i --) printf("%d",C[i]);//从后面输出
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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