大数加法

前端之家收集整理的这篇文章主要介绍了大数加法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream> #include <cstring> #include <cstdio> using namespace std; char str1[10000002],str2[10000002],result[10000010]; short add[10000000]; void bignumadd(char str1[],char str2[],char result[]) {      long   k=0,i,j;      long  leng1 = strlen(str1);      long  leng2 = strlen(str2);      memset(add,sizeof(add));      for(i=leng1-1,j=leng2-1;i>=0&&j>=0;i--,j--) //做加法操作      {         add[k++] = (str1[i]-'0')+(str2[j]-'0');      }       if(leng1>leng2)       {            for(j=i;j>=0;j--)            add[k++] = str1[j]-'0';       }       else       {            for(i=j;i>=0;i--)           add[k++] = str2[i]-'0';       }       for(i=0;i<k;i++)//该进位的进位       {            if(add[i]>=10)            {                 add[i+1] += (add[i]/10);                 add[i]%=10;            }       }       long long l=0;       if(add[k]>0)//最高位产生了进位       {            for(i=k;i>=0;i--)            {                 result[l++] = add[i]+'0';            }       }       else       {            for(i=k-1;i>=0;i--)            {                 result[l++] = add[i]+'0';            }       }      result[l]='\0'; } int main() {      scanf("%s%s",str1,str2);      bignumadd(str1,str2,result);      printf("%s\n",result);     return 0; }

猜你在找的大数据相关文章