1.字符串结题(不会超内存,但是代码较长)
http://acm.hdu.edu.cn/showproblem.php?pid=1250
1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <algorithm> 5 #include <cmath> 6 #include <string.h> 7 #include <malloc.h> 8 using namespace std; 9 void add(char *a,char *b,char *c) 10 { 11 int i,j,k,t,lmax,lmin,tmp; 12 char *s,*pmax,*pmin; 13 lmax=strlen(a); 14 lmin=strlen(b); 15 if(lmax<lmin) 16 { 17 tmp=lmax;lmax=lmin;lmin=tmp; 18 pmax=b;pmin=a; 19 } 20 else 21 { 22 pmax=a;pmin=b; 23 } 24 s=(char*)malloc(sizeof(char)*(lmax+1)); 25 s[0]='0';//注意此处很容易被忽略 26 for(i=lmax-1,j=lmin-1,k=lmax;j>=0;i--,j--,k--) 27 s[k]=pmax[i]-'0'+pmin[j]; 28 for(;i>=0;i--,k--) 29 s[k]=pmax[i]; 30 for(i=lmax;i>=0;i--) 31 if(s[i]>'9') 32 { 33 s[i]-=10; 34 s[i-1]++; 35 } 36 if(s[0]=='0') 37 { 38 for(i=0;i<=lmax;i++) 39 c[i-1]=s[i]; 40 c[i-1]='