[ 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 }