您的位置:首页 > 产品设计 > UI/UE

Integer Inquiry

2015-08-10 16:41 441 查看

http://acm.hdu.edu.cn/showproblem.php?pid=1047

#include<iostream>

#include<cstring>

#include<cstdio>

using namespace std;

int max1;

void turn(int a[],int dig)

{

 int t;

 for(int i=1;i<=dig/2;i++)

 {

  t=a[i];

  a[i]=a[dig-i+1];

  a[dig-i+1]=t;

 }

}

void add(int A[],int len1,int S[])

{

 

 int temp[10005];

 memset(temp,0,sizeof(temp));

 turn(A,len1);

 max1=len1;

 int len2=0;

 for(int i=10004;;i--)

 {

  if(S[i]!=0)

  {

   len2=i;

   break;

  }

 }

 if(max1<len2)

 max1=len2;

 for(int k=0,i=1;i<=max1+1;i++)

 {

  temp[i]=A[i]+S[i]+k;

  k=temp[i]/10;

  temp[i]%=10;

  }

 for(int i=1;i<=max1+1;i++)

 {

  S[i]=temp[i];

 }

}

int main()

{

 int n;

 char a[110];

 int A[10005],S[10005];

 cin>>n;

 getchar();

 while(n--)

 {

  memset(S,0,sizeof(S));

  memset(a,0,sizeof(a));

  memset(A,0,sizeof(A));

  while(cin>>a && strcmp(a,"0")!=0)

  {

   int len1=strlen(a);

   for(int i=0;i<len1;i++)

   {

    A[i+1]=a[i]-'0';

   }

   add(A,len1,S);

   memset(a,0,sizeof(a));

   memset(A,0,sizeof(A));

  }

  int i;

  for(i=max1+1;i>1;i--)

  if(S[i])

  break;

  for(;i>=1;i--)

  cout<<S[i];

  cout<<endl;

  if(n!=0)

  cout<<endl;

 }

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: