2829: 高精A+B [1*+]

Posted mist2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2829: 高精A+B [1*+]相关的知识,希望对你有一定的参考价值。

题目描述

输入A和B,计算A+B的值

Input

两行数据,分别是A和B 
0<=A<=1E200 
0<=B<=10^200 

Output

A+B的结果

Sample Input

1
1

Sample Output

2

 1 #include<stdio.h>
 2 #include<string.h>
 3 struct bign{
 4     int d[110];
 5     int len;
 6     bign(){
 7         memset(d,0,sizeof(d));
 8         len=0;
 9     }
10 };
11 bign change(char c[]){
12     int len=strlen(c);
13     bign b;
14     b.len=len;
15     for(int i=0;i<len;i++){
16         b.d[i]=c[len-i-1]-0;
17     }
18     return b;
19 }
20 bign add(bign a,bign b){
21     bign c;
22     int carry=0;
23     for(int i=0;i<a.len||i<b.len;i++){
24         int temp=a.d[i]+b.d[i]+carry;
25         c.d[c.len++]=temp%10;
26         carry=temp/10;
27     }
28     if(carry!=0){
29         c.d[c.len++]=carry;
30     }
31     return c;
32 }
33 int main(){
34     char a[110],b[110];
35     scanf("%s%s",a,b);
36     bign c=add(change(a),change(b));
37     for(int i=c.len-1;i>=0;i--){
38         printf("%d",c.d[i]);
39     }
40     return 0;
41 }

Mist Note:只是重复的练习高精度加法,对于我而言,一个地方容易出错,就是字符串转换为int型数组,

b.d[i]=c[len-i-1]-‘0‘;这个地方记住需要减去字符‘0’。





以上是关于2829: 高精A+B [1*+]的主要内容,如果未能解决你的问题,请参考以下文章

各种高精——一入高精深似海,从此AC是路人.

高精度2--减法

高精度加法简洁代码

洛谷 P1303 A*B Problem(高精度乘法) 题解

P1601 A+B Problem(高精)

洛谷P1480 A/B Problem(高精除高精)