首页 > 其他 > 详细

高精度加法

时间:2020-03-07 20:53:05      阅读:68      评论:0      收藏:0      [点我收藏+]
 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 const int N = 1e5+5;
 6 
 7 char a[N],b[N];
 8 
 9 struct bign{
10     int d[N];
11     int len;
12     bign(){
13         memset(d,0,sizeof(d));
14         len = 0;
15     }
16 };
17 
18 bign change(char *t){
19     bign c;
20     int len = strlen(t);
21     c.len = len;
22     for(int i=0; i<len; i++){
23         c.d[i] = t[len - i - 1] - 0;
24     }
25     return c;
26 }
27 
28 bign add(bign a, bign b){
29     bign c;
30     int carry = 0;
31     for(int i=0; i<a.len || i<b.len; i++){
32         int t = a.d[i] + b.d[i] + carry;
33         c.d[c.len++] = t % 10;
34         carry = t / 10; 
35     }
36     if(carry != 0) c.d[c.len++] = carry;
37     return c;
38 }
39 
40 void print(bign c){
41     for(int i=c.len - 1; i>=0; i--){
42         printf("%d",c.d[i]);
43     }
44 }
45 
46 int main(){
47     scanf("%s%s",a,b);
48     bign v1 = change(a);
49     bign v2 = change(b);
50     print(add(v1,v2));
51     return 0;
52 }

 

高精度加法

原文:https://www.cnblogs.com/zhangqiling/p/12436945.html

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