hdu 1002

来源:互联网 发布:知乎法国核潜艇 编辑:程序博客网 时间:2024/05/16 10:08
#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>using namespace std;const int MAXN = 1010;void Reverse_Char(char* a){    int len = strlen(a)-1;    int mid = len / 2;    for(int i = 0; i <= mid; ++i)    {        char tmp;        tmp = a[i];        a[i] = a[len-i];        a[len-i] = tmp;    }    return ;}void Big_Num_Add(char* a, char* b){    char rr[MAXN];    Reverse_Char(a);    Reverse_Char(b);    char* pa = a;    char* pb = b;    int flag = 0;    int pos = 0;    int m = 0;    while(*pa && *pb)    {        m = (*pa++ - 48) + (*pb++ - 48) + flag;        rr[pos++] = m % 10 + 48;        if(m >= 10)            flag = 1;        else            flag = 0;    }    while(*pa)    {        if(flag)        {            m = *pa++ - 48 + flag;            rr[pos++] = m%10 + 48;            if(m >= 10)                flag = 1;            else                flag = 0 ;        }        else            rr[pos++] = *pa++;    }    while(*pb)    {        if(flag)        {            m =  *pb++ - 48 + flag;            rr[pos++] = m%10 + 48;            if(m >= 10)                flag = 1;            else                flag = 0;        }        else            rr[pos++] = *pb++;    }    if(flag)        rr[pos++] = flag + 48;    rr[pos] = '\0';    Reverse_Char(rr);    int len = strlen(rr);    pos = 0;    while(rr[pos] == '0')        pos++;    for(;pos < len; pos++)        cout<<rr[pos];    //cout<<endl;}int main(){    char a[MAXN], b[MAXN];    int T;    int kcase = 1;    cin>>T;    while(T--)    {        cin>>a>>b;        cout<<"Case "<<kcase++<<":"<<endl;        cout<<a<<" + "<<b<<" = ";        Big_Num_Add(a, b);        cout<<endl;        if(T != 0 )            cout<<endl;    }    return 0;}



0 0