#define MaxLen 200 char *BigNumPlus(char *a,char *b) { int i,t; char fa[MaxLen],fb[MaxLen],ret[MaxLen]; int lena=strlen(a),lenb=strlen(b); memset(ret,0,sizeof(ret)); if (lenb>lena) { strcpy(&fa[MaxLen-1-lenb],b); strcpy(&fb[MaxLen-1-lena],a); } else { strcpy(&fa[MaxLen-1-lena],a); strcpy(&fb[MaxLen-1-lenb],b); } if (lenb>lena) { t=lena; lena=lenb; lenb=t; } for (i=MaxLen-2;i>=MaxLen-1-lena;i--) { if (i>=MaxLen-1-lenb) ret[i]=fa[i]-0x30+fb[i]-0x30; else ret[i]=fa[i]-0x30; } for (i=MaxLen-2;i>=MaxLen-1-lena;i--) { if (ret[i]>=10) { if (i==MaxLen-1-lena) lena++; ret[i]=ret[i]-10; ret[i-1]++; } ret[i]+=0x30; } while (ret[MaxLen-1-lena]=='0') lena--; return &ret[MaxLen-1-lena]; }