大数相乘

//Sichuan University Computer Science and Technology 2008 Jeick(JiaYu)
#include <iostream>
using namespace std;
int main()
{
  char charA[1000],charB[1000];//用于存放两个整数
  int sum[1001];//存放两个整数的和
  memset(sum,0,sizeof(sum));//给sum[]赋值
  int n,i=1;
  cin>>n;
 while(n--)
 {cin>>charA>>charB;
  int sumIndex=0;
  int index=0;
  //把charA的值赋到sum里
  for (index=strlen(charA)-1,sumIndex=1000;index>=0;--index,--sumIndex)
  {
  sum[sumIndex]+=charA[index]-'0';
  }
  //把charB的值赋到sum里
  for (index=strlen(charB)-1,sumIndex=1000;index>=0;--index,--sumIndex)
  {
  sum[sumIndex]+=charB[index]-'0';
  }
  //如果sum元素的值大于9,则进位
  for (sumIndex=1000;sumIndex>=0;--sumIndex)
  {
  if (sum[sumIndex]>9)
  {
    sum[sumIndex-1]+=sum[sumIndex]/10;
    sum[sumIndex]%=10;
  }
  }
  //查找结果放在第几位
  for (sumIndex=0;sumIndex<=1000;++sumIndex)
  {
  if (sum[sumIndex]!=0)
  {
    break;
  }
  }
  //如果结果为0,则输出最后一位021
  if (sumIndex==1001)
  {
  sumIndex=1000;
  }
  cout<<"Case "<<i++<<":"<<endl;
  cout<<charA<<" + "<<charB<<" = ";
  for (;sumIndex<=1000;++sumIndex)
  {
  cout<<sum[sumIndex];
  }
  cout<<endl;
}
return 0;
}

你可能感兴趣的:(网络,职场,休闲,交换)