首页 > 其他分享 >高精度 +-*/

高精度 +-*/

时间:2024-09-25 22:24:59浏览次数:8  
标签:10 return 高精度 int back +- vector size

高精度 +-*/

高精加模板

// C = A + B, A >= 0, B >= 0
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;
}

高精减模板

// C = A - B, 满足A >= B, A >= 0, B >= 0
vector <int> sub(vector <int> &A, vector <int> &B)
{
    vector <int> C;
    for (int i = 0, t = 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;
}

高精乘低精模板

// C = A * b, A >= 0, b >= 0
vector <int> mul(vector <int> &A, int b)
{
    vector <int> C;

    int t = 0;
    for (int i = 0; i < A.size() || t; i ++ )
    {
        if (i < A.size()) t += A[i] * b;
        C.push_back(t % 10);
        t /= 10;
    }

    while (C.size() > 1 && C.back() == 0) C.pop_back();

    return C;
}

高精除以低精

// A / b = C ... r, A >= 0, b > 0
vector <int> div(vector <int> &A, int b, int &r)
{
    vector <int> C;
    r = 0;
    for (int i = A.size() - 1; i >= 0; 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;
}

. . . . . .

标签:10,return,高精度,int,back,+-,vector,size
From: https://www.cnblogs.com/Domi2011/p/18432386

相关文章

  • 高精度
    回来第一件事先复习高精高精加:按位相加依次进位倒序输出1#include<bits/stdc++.h>2#definerep(i,a,b)for(inti=a;i<=b;i++)3#definerrep(i,a,b)for(inti=b;i>=a;i--);4usingnamespacestd;5constintM=1e5+1;6stringa,b;7int......
  • KTH7823——16 位高精度低延时霍尔磁编码器可编程 ABZ 和 PWM 输出模式角度传感器
    KTH7823是一款高精度绝对角度霍尔传感器芯片,最高16位分辨率绝对角度输出,可实现在轴向和离轴场合下的无接触式磁场角度测量。不论转速范围在0-120000rpm之间,KTH7823都能快速准确地输出角度信息,适用于需要精准角度测量和转速控制的各个领域。KTH7823......
  • c++高精度求平方根(保留整数)
    #include<iostream>#include<cstring>usingnamespacestd;constintSIZE=200;structhugeint{ intlen,num[SIZE];};hugeinttimes(hugeinta,hugeintb){ inti,j; hugeintans; memset(ans.num,0,sizeof(ans.num)); for(i=1;i<=......
  • C++-练习-41
    题目:编写一个程序,它打开一个文本文件,逐个字符地读取该文件,知道到达文件末尾,然后指出该文件中包含多少个字符。(包含空格)源代码:#include<iostream>#include<fstream>intmain(){ usingnamespacestd; charch; intch_num=0; ifstreamfin; fin.open("people.......
  • C++-练习-42
    题目:编写一个程序,记录捐献给"维护合法权利团队"的资金。该程序要求用户输入捐献者数目,然后要求用户输入每一个捐献者的姓名和款项。这些信息被存在一个动态分配的结构数组中。每个结构有两个成员:用来存储姓名的字符数组和用力啊存储款项的double成员。读取所有的数据后,程序将......
  • C++-练习-40
    题目:编写一个程序,她每次读取一个单词,知道用户只输入q。然后,该程序指出有多少个单词以元音大头,而多少个单词以辅音大头,还有多少个单词不属于着两类。源代码:#include<iostream>#include<cctype>//元音:A、E、I、O、Uintmain(){ usingnamespacestd; charword[20];......
  • windows C++-并行编程-PPL任务并行(一)
    在并发运行时中,任务是执行特定作业并通常与其他任务并行运行的工作单元。任务可以分解为组织成任务组的其他更细化的任务。编写异步代码,并希望在异步操作完成之后进行某种操作时,可使用任务。例如,可以使用一个任务以异步方式从文件读取,然后使用另一个任务(延续任务,本文档稍后......
  • C++-练习-39
    题目:编写一个程序,记录捐献给"维护合法权利团队"的资金。该程序要求用户输入捐献者数目,然后要求用户输入每一个捐献者的姓名和款项。这些信息被存在一个动态分配的结构数组中。每个结构有两个成员:用来存储姓名的字符数组和用力啊存储款项的double成员。读取所有的数据后,程序将......
  • C++--模板
    1泛型编程如何将Swap实现乘成一个通用的交换函数voidSwap(int&left,int&right){inttemp=left;left=right;right=temp;}voidSwap(double&left,double&right){doubletemp=left;left=right;right=temp;}voidSwap......
  • C++---string类常见接口
    介绍 string类详情===>>>https://cplusplus.com/reference/string/string/?kw=string1.string是表示字符串的字符串类(感觉就像一个动态的字符数组)2.该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。3.string在底层实际是:basic_string模......