码迷,mamicode.com
首页 > 其他好文 > 详细

高精度加法

时间:2018-10-15 00:38:24      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:iostream   gnu   return   stream   cst   closed   splay   name   std   

(快考试了,复习下)

技术分享图片
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<iostream>
 5 //此处的高精加不考虑负数
 6 using namespace std;
 7 struct bignum{
 8     int y[50005];//第0位存size 
 9     //全部为倒存(节省点常数)
10     bignum()
11         {memset(y,0,sizeof(y));} 
12     bignum operator + (const bignum x) const
13     {
14         bignum re;
15         re.y[0]=max(y[0],x.y[0]);
16         for(int i=1;i<=re.y[0];i++)
17         {
18             re.y[i]+=y[i]+x.y[i];
19             while(re.y[i]>9) re.y[i]-=10,re.y[i+1]+=1;
20         }
21         while(re.y[re.y[0]+1]) re.y[0]++;
22         return re;
23     }
24 }; 
25 string b1,b2;
26 bignum q,w,c;
27 int main()
28 {
29     cin>>b1>>b2;
30     q.y[0]=b1.size(),w.y[0]=b2.size();
31     for(int i=0;i<q.y[0];i++) q.y[i+1]=b1[i]-0;
32     for(int i=0;i<w.y[0];i++) w.y[i+1]=b2[i]-0;
33     reverse(q.y+1,q.y+1+q.y[0]);
34     reverse(w.y+1,w.y+1+w.y[0]);
35     c=q+w;
36     reverse(c.y+1,c.y+1+c.y[0]);
37     for(int i=1;i<=c.y[0];i++) printf("%d",c.y[i]);
38     return 0;
39 } 
View Code

 

高精度加法

标签:iostream   gnu   return   stream   cst   closed   splay   name   std   

原文地址:https://www.cnblogs.com/shzyk/p/9788849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!