[ 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]!='\0') 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]='\0';
34     i=0;
35     while ((b[i++]=getchar())!='\n');
36     i--;
37     b[i]='\0';
38     Plus();
39     puts(c);
40     return 0;
41 }

 

posted @ 2016-09-12 17:10  Hadilo  阅读(175)  评论(0编辑  收藏  举报