九度OJ—题目1198:a+b(高精度计算) -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    题目描述:

    实现一个加法器,使其能够输出a+b的值,

九度OJ—题目1198:a+b(高精度计算)

输入:

    输入包括两个数a和b,其中a和b的位数不超过1000位。

输出:

    可能有多组测试数据,对于每组数据,

    输出a+b的值。

样例输入:
2 610000000000000000000 10000000000000000000000000000000
样例输出:
810000000000010000000000000000000
来源:
2010年华中科技大学计算机研究生机试真题答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7921-1-1.html

   

#include<stdio.h>#include<string.h>#define Max 1001//有进位1001          int bigNumAdd(char a[],char b[],char sum[])     {        int i=0;         int c=0;//表示进位              //清0        char m[Max]={0};         char n[Max]={0};        memset(sum,0,1001);                    //字符串反转且字符串变数字         int lenA=strlen(a);         int lenB=strlen(b);                        int result_len = (lenA >lenB)?lenA:lenB;              for (i=0;i<lenA;i++)         {            m[i]=a[lenA-i-1]-'0';         }         for (i=0;i<lenB;i++)         {            n[i]=b[lenB-i-1]-'0';         }                    //位运算:如果最后一位进位len+1         for (i=0;i<result_len;i++)         {            sum[i]=(m[i]+n[i]+c)%10+'0';//得到末位            c=(m[i]+n[i]+c)/10;//得到进位        }              //最后一次有进位,要把进位后的那一位赋值为1,并且sum总长度加1         if (c)         {            sum[result_len]=c+'0';            result_len++;               }                return result_len;    }                void print(char sum[],int result_len)     {         int i;               for(i=result_len-1; i>=0; i--)         {             printf("%c",sum[i]);         }      }         int main()     {        char a[Max];         char b[Max];         char sum[Max];              while(scanf("%s%s",a,b)!=EOF)        {            print(sum,bigNumAdd(a,b,sum));            printf("\n");        }        return 0;     }                           /**************************************************************        Problem: 1198        User: vhreal        Language: C        Result: Accepted        Time:90 ms        Memory:912 kb    ****************************************************************/

最新文章