大数加法(基础)

来源:互联网 发布:http 大文件 json 编辑:程序博客网 时间:2024/06/08 00:03

源代码:

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int i,j,k;
char a[1005],b[1005];
int  c[1008];
int q;
int len1,len2;
    int  mid;
while(cin>>a>>b)
{
memset(c,0,sizeof(c));
  len1=strlen(a);
  len2=strlen(b);
  q=0;
  if(len1<len2)
  {
  //cout<<"enter 1 "<<endl;
  j=len2-1;
   i=len1-1;
   //mid=0;
  for(;i>=0;i--)
  {
  c[q]+=a[i]+b[j]-96;
  if(c[q]>=10) 
  {
  c[q+1]+=c[q]/10;
  c[q]=c[q]%10;
  }
  j--;
  q++;
  }
  for(j;j>=0;j--)
  {
  c[q]+=b[j]-48;
  if(c[q]>=10) 
  {
  c[q+1]+=c[q]/10;
  c[q]=c[q]%10;
  }
  q++;
  }
   
  }
  else 
  {
  //cout<<"enter 2 "<<endl;
  j=len1-1;
   i=len2-1;
   //mid=0;
  for(;i>=0;i--)
  {
  c[q]+=a[j]+b[i]-96;
  if(c[q]>=10) 
  {
  c[q+1]+=c[q]/10;
  c[q]=c[q]%10;
  }
  j--;
  q++;
  }
  for(j;j>=0;j--)
  {
  c[q]+=a[j]-48;
  if(c[q]>=10) 
  {
  c[q+1]+=c[q]/10;
  c[q]=c[q]%10;
  }
  q++;
  }
   
  }
  int flag=1;
  for(k=q;k>=0;k--)
       {
   if(c[k]==0&&flag) continue;
         else 
       {
flag=0;
cout<<c[k];
       }
       }
       cout<<endl;
}
}