首页 > 其他 > 详细

高精度常用操作

时间:2018-10-28 12:10:07      阅读:129      评论:0      收藏:0      [点我收藏+]
 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

高精度常用操作

原文:https://www.cnblogs.com/adelalove/p/9864982.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!