码迷,mamicode.com
首页 > 其他好文 > 详细

大数加法

时间:2018-08-05 22:33:20      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:size   span   col   加法   scree   include   main   inpu   har   

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MaxSize 1000

char *TwoBigNumPlus(char *InputAddend_1,char *InputAddend_2)
{
    char *Result = malloc(MaxSize*sizeof(char));
    int ResultEnd = 0;
    
    int AddendLen_1 = strlen(InputAddend_1);
    int AddendLen_2 = strlen(InputAddend_2);
    
    int Addend_1[MaxSize];
    int Addend_2[MaxSize];
    memset(Addend_1,0,sizeof(Addend_1));
    memset(Addend_2,0,sizeof(Addend_2));
    
    //reverse to store
    int InputAddendEnd,AddendEnd;
    for(InputAddendEnd = AddendLen_1-1,AddendEnd = 0;InputAddendEnd >= 0;InputAddendEnd --)
    {
        Addend_1[AddendEnd ++] = InputAddend_1[InputAddendEnd] - 0;
    }
    for(InputAddendEnd = AddendLen_2-1,AddendEnd = 0;InputAddendEnd >= 0;InputAddendEnd --)
    {
        Addend_2[AddendEnd ++] = InputAddend_2[InputAddendEnd] - 0;
    }
    
    //Plus && Carry
    for(AddendEnd = 0;AddendEnd < MaxSize;AddendEnd ++)
    {
        Addend_2[AddendEnd] += Addend_1[AddendEnd];
        if(Addend_2[AddendEnd] >= 10)
        {
            Addend_2[AddendEnd+1] += Addend_2[AddendEnd] / 10;
            Addend_2[AddendEnd] %= 10;
        }
    }
    
    //store to return
    //0 screening
    for(AddendEnd = MaxSize-1;AddendEnd>=0 && Addend_2[AddendEnd]==0;AddendEnd --)
        ;
    if(AddendEnd >= 0)
    {
        for( ;AddendEnd >= 0;AddendEnd --)
        {
            Result[ResultEnd++] = Addend_2[AddendEnd] + 0;
        }
    }
    else
    {
        Result[ResultEnd++] = 0;
    }
    Result[ResultEnd] = \0;
    return Result;
} 

int main()
{
    char InputAddend_1[MaxSize] = "99";
    char InputAddend_2[MaxSize] = "99999999";
    
    char *Result = TwoBigNumPlus(InputAddend_1,InputAddend_2);
    puts(Result);
    return 0;
}

 

大数加法

标签:size   span   col   加法   scree   include   main   inpu   har   

原文地址:https://www.cnblogs.com/Asurudo/p/9427281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!