大整数加法函数

原创 2012年03月25日 19:06:04
#define MAX 110
/*******************************
*大整数的加法
*参数:s1,s2为两个以字符串存储的加数
*返回值:无
*******************************/
char result[MAX];
void big_num_add(char * s1,char * s2)
{
    int max_len,len1,len2;
    int i,k;
    char * a;
    char * b;

    len1 = strlen(s1);
    len2 = strlen(s2);
    max_len = len1 > len2?len1 : len2;

    a = (char *)malloc(max_len + 1);//暂存s1
    b = (char *)malloc(max_len + 1);//暂存s2

    memset(a,0,max_len + 1);
    memset(b,0,max_len + 1);

    k = 0;
    for(i = len1 - 1;i >= 0;i--) a[k++] = s1[i] - '0';//倒置存放

    k = 0;
    for(i = len2 - 1;i >= 0;i--) b[k++] = s2[i] - '0';//倒置存放

    for(i = 0;i < max_len;i++)
    {
        a[i] += b[i];
        if(a[i] > 9)
        {
            a[i] = a[i] - 10;
            a[i + 1]++;
        }
    }
    if(a[max_len] != 0) max_len++;

    k = 0;
    for(i = max_len - 1;i >= 0;i--) result[k++] = a[i] + '0';
    result[k] = '\0';
    free(a);
    free(b);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

不用加减乘除做加法题目:写一个函数,求两个整数之和

今天上网的时候看到360公司的一道面试题:不用加减乘除,一个数扩大7倍。然后想到了位运算,但是不清楚位运算怎么求两个数的积,因此,百度了一下:以下是原文:链接int a=7; int b=9;...

两个大整数的加法

  • 2013年12月24日 16:52
  • 2KB
  • 下载

c#实现大整数的加法和乘法

  • 2009年03月20日 19:38
  • 607KB
  • 下载

定义一个函数,在该函数中可以实现任意两个整数的加法。java实现

这道题实际上是一道面试题的拓展,原题是要求打印1到最大的n位数。原题是这样描述的:输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1,2,3,4,5一直到最大的三位数999。拿到这...

大整数加法

  • 2012年05月11日 10:16
  • 2KB
  • 下载

C/C++大整数加法

  • 2009年12月15日 16:48
  • 620B
  • 下载

大整数加法

实现大整数加法,第二个程序写得比第一个程序简洁,虽然两个程序的功能是一样的。 第一个程序: #include #include #include //using namespace st...
  • nkuzbp
  • nkuzbp
  • 2012年04月02日 01:26
  • 2206

大整数加法 代码实现 

  • 2010年08月24日 16:28
  • 2KB
  • 下载

vc6.0实现大整数加法

  • 2011年08月17日 14:35
  • 3.47MB
  • 下载

百练2981: 大整数加法

2981:大整数加法 查看提交统计提示提问 总时间限制: 1000ms 内存限制: 65536kB 描述 求两个不超过200位的非负整数的和。 输入有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大整数加法函数
举报原因:
原因补充:

(最多只允许输入30个字)