[ CodeVS冲杯之路 ] P3116

  不充钱,你怎么AC?

  题目:http://codevs.cn/problem/3116/

  基础的高精度加法,注意一下两个数长短不一和答案第一位的处理即可,当然也可以用压位的方法做

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<iostream>
 6 #include<algorithm>
 7 #define N 501
 8 using namespace std;
 9 
10 char a[N],b[N],c[N+1];
11 void Plus()
12 {
13     int la,lb,i,k;
14     la=strlen(a)-1;
15     lb=strlen(b)-1;
16     i=max(la,lb)+1;
17     k=0;
18     while (i>=0)
19     {
20         if (la>=0) k+=a[la--]-'0';
21         if (lb>=0) k+=b[lb--]-'0';
22         c[i--]=k%10+'0';
23         k/=10;
24     }
25     if (c[0]!='1') while (c[++i]!='') c[i]=c[i+1];
26 }
27 int main()
28 {
29     int i;
30     i=0;
31     while ((a[i++]=getchar())!=' ');
32     i--;
33     a[i]='';
34     i=0;
35     while ((b[i++]=getchar())!='
');
36     i--;
37     b[i]='';
38     Plus();
39     puts(c);
40     return 0;
41 }
原文地址:https://www.cnblogs.com/hadilo/p/5865457.html