大数相加
#include<iostream> #include<string> using namespace std; int helpAdd(const char *a,const char *b,char * result) { int len_a=strlen (a); int len_b=strlen (b); int len_max=len_a>len_b?len_a:len_b; int len_min=len_a>len_b?len_b:len_a; int len_r=len_max+1; int carry=0; int count=1; char * re=new char [len_max+2]; re[len_r] ='\0'; while(count <=len_min ) { int tmp=(a[len_a-count]-48)+(b[len_b-count]-48)+carry; if(tmp>=10) { carry=1; tmp=tmp%10; } re[len_r-count]=tmp+48; count++; } while(count<=len_max) { int tmp=0; if(len_a>len_b) { tmp=a[len_a-count]-48+carry; } else { tmp=b[len_b-count]+carry; } if(tmp>=10) { carry=1; tmp=tmp%10; } re[len_r-count]=tmp+48; count++; } if(carry=1) re[len_r-count]=carry+48; else re[len_r-count]=0+48; char *t=re; while(*re!='\0') *(result++)=*(re++); *result='\0'; delete []t; return 0; } int main() { int r,n; char * result=new char (100); memset(result,0,100); int carry=helpAdd("999342142349","999932142143125",result); cout<<result<<endl; system("pause"); return 0; }