• 高精度常用操作


     1 void jia(ll *a,ll *b) //加法 
     2 {
     3     tmp[0]=max(a[0],b[0]);
     4     tx=0;
     5     for(ll i=1;i<=tmp[0]+3;++i) tmp[i]=0;
     6     for(ll i=1;i<=tmp[0];++i)
     7     {
     8         tmp[i]=(tx+a[i]+b[i])%10;
     9         tx=(tx+a[i]+b[i])/10;
    10     } 
    11     if(tx)
    12     {
    13         tmp[0]++;
    14         tmp[tmp[0]]=tx;
    15     }
    16     while(tmp[tmp[0]]==0&&tmp[0]>1) tmp[0]--;
    17     for(int i=0;i<=tmp[0];++i) a[i]=tmp[i];
    18 }
    19 void jian(ll *a,ll *b)//减法
    20 {
    21     tmp[0]=max(a[0],b[0]);
    22     tx=0;
    23     for(ll i=1;i<=tmp[0]+3;++i) tmp[i]=0;
    24     for(ll i=1;i<=tmp[0];++i)
    25     {
    26         tmp[i]=a[i]-b[i]+tx;
    27         if(tmp[i]<0)
    28         {
    29             tmp[i]+=10;tx=-1;
    30         }else tx=0;
    31     }
    32     while(tmp[tmp[0]]==0&&tmp[0]>1) tmp[0]--;
    33     for(int i=0;i<=tmp[0];++i) a[i]=tmp[i];
    34 }

     此为倒序:

    例子:in:120098

    a:123456

       890021

     1 void chu(ll *a,ll *p,ll u)//a[]/u
     2 {
     3     g[0]=a[0];tx=0;
     4     for(ll i=1;i<=g[0]+3;++i) g[i]=0;
     5     for(int i=g[0];i>=1;--i)
     6     {
     7         tx=tx*10+a[i];
     8         g[i]=tx/u;
     9         tx%=u; 
    10     }
    11     while(g[g[0]]==0&&g[0]>1) g[0]--;
    12     for(ll i=0;i<=g[0];++i) a[i]=g[i];
    13 }  
  • 相关阅读:
    代码结构
    linux 启动盘制作multisystem
    cmake 各种语法的作用
    leetcode Longest Consecutive Sequence
    leetcode find kth
    leetcode twoSum
    S3pool pytorch
    数学:优化:拉格朗日乘子法
    Fisher判别分析(线性判别分析——LDA)
    数学:优化:牛顿法
  • 原文地址:https://www.cnblogs.com/adelalove/p/9864982.html
Copyright © 2020-2023  润新知