思路分析:
1.两数组从最高位开始相加并存入数组中,直到其中一个结束。
2.将未加完的数组直接加到新数组中,判断最后一位是否需要进位。
3.数组从低位输出。
代码:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
??? int n,q;
??? cin>>n;
??? for(q=1;q<=n;q++)
??? {
??????? int i,j,m,c[1005],l1,l2,d;
??????? char a[1005],b[1005];
??????? cin>>a>>b;
??????? l1=strlen(a);
??????? l2=strlen(b);
??????? d=0;
??????? for(i=l1-1,j=l2-1,m=0;i>=0&&j>=0;i--,j--,m++)
??????? {
???????? d=a[i]-48+b[j]-48+d;
???????? c[m]=d%10;
???????? d=d/10;
??????? }
??????? if(m==l1)
??????? {
??????????? while(j>=0)
??????????? {
??????????? d=b[j]-48+d;
??????????? c[m]=d%10;
??????????? d=d/10;
??????????? j--;m++;
??????????? }
??????? }
??????? else
??????? {
??????????? while(i>=0)
??????????? {
??????????? d=a[i]-48+d;
??????????? c[m]=d%10;
??????????? d=d/10;
??????????? i--;m++;
??????????? }
??????? } ??????? if(d!=0){c[m]=d;m++;} ??????? cout<<"Case "<<q<<":"<<endl; ??????? cout<<a<<" "<<"+"<<" "<<b<<" "<<"="<<" "; ??????? for(i=m-1;i>=0;i--) ??????????? cout<<c[i]; ??????? if(q<n)cout<<endl; ??????? cout<<endl; ??? } ??? return 0; }