1168:大整数加法

Posted jzxnl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1168:大整数加法相关的知识,希望对你有一定的参考价值。

传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1168

 

用字符将其读入,随后倒记在整数数组(一位一个数字)中(避免没地方好进位),加后进位,最后去掉多余的零,OK

 

 1 #include<iostream>
 2 #include<cstring>
 3 #define N 210
 4 using namespace std;
 5 int as[N],bs[N],lena,lenb;
 6 string a,b;
 7 int main()
 8     cin>>a>>b;
 9     lena=a.size();
10     lenb=b.size();
11     for(int i=0;i<lena;i++)as[i]=a[lena-i-1]-0;
12     for(int i=0;i<lenb;i++)bs[i]=b[lenb-i-1]-0;
13     int length=max(lena,lenb);
14     for(int i=0;i<length;i++)as[i]+=bs[i];
15     for(int i=0;i<length;i++)
16         if(as[i]>9)
17             as[i+1]++;
18             as[i]-=10;
19             if(i==length-1)length++;
20         
21     
22     while(length&&as[length]==0)length--;
23     for(int i=length;i>=0;i--)cout<<as[i];
24     cout<<endl;
25 

 

以上是关于1168:大整数加法的主要内容,如果未能解决你的问题,请参考以下文章

ZZNUOJ_用C语言编写程序实现1168:大整数(指针专题)(附完整源码)

算法大整数加法

用c语言实现超长整数的加法运算

大整数加法 HDU1002

HDU - 1002 A + B Problem II (大整数加法)

大整数加法和大整数乘法