`
thecloud
  • 浏览: 911841 次
文章分类
社区版块
存档分类
最新评论

大整数加法函数

 
阅读更多
#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);
}

分享到:
评论

相关推荐

    数据结构(大整数加法)

    当我们处理大整数加法时,由于普通整数类型在计算机内存中的限制,不能直接存储和运算超大的数值,这就需要利用特定的数据结构和算法来解决。本主题主要探讨如何使用数据结构来实现大整数的加法操作。 首先,我们...

    简单的js大整数加法

    这个函数可以处理任意长度的大整数加法,避免了JavaScript中Number类型的精度问题。通过这种方式,你可以安全地执行大整数运算,而不会因为数值过大导致数据丢失或错误。 在实际应用中,还可以考虑使用第三方库,如...

    大整数加法 下载

    ### 大整数加法实现方法 在计算机科学领域,对于大整数的处理往往超出了常规整型数据类型的范围,比如C语言中的`int`、`long long int`等类型无法存储非常大的数字(例如几百位甚至上千位的整数)。因此,在实际...

    大整数加法

    ### 大整数加法与链表应用 在计算机科学领域,处理大整数运算时,常规的数据类型(如`int`, `long long`等)往往由于其存储范围的限制而无法满足需求。因此,开发一种能够有效处理任意大小整数的算法就显得尤为重要...

    vc6.0实现大整数加法

    在本文中,我们将深入探讨如何使用Microsoft Visual C++ 6.0(简称VC6.0)集成开发环境,结合MFC(Microsoft Foundation Classes)库来实现大整数加法的功能。MFC是微软提供的一套面向对象的C++类库,它极大地简化了...

    任意长整数加法

    在编程领域,尤其是在Java语言中,处理大数据量的整数加法是一项常见任务。"任意长整数加法"指的是可以处理超过Java内置数据类型(如int和long)表示范围的整数相加操作。这是因为Java中的int类型能存储的最大值是2^...

    大整数的运算2

    ### 大整数加法函数:add() 此函数实现大整数的加法。它接受两个大整数作为参数,然后逐位相加,同时处理进位。进位值(`carry`)在每次迭代后更新,以确保所有位都正确相加。最后,如果存在进位,则将其添加到结果...

    c_大整数乘法_大整数加法_e的x次幂_

    本主题将深入探讨大整数加法、大整数乘法以及e的x次幂的C语言实现。 **大整数加法**: 大整数加法的基本思想是将每个位看作一个单独的数字,然后逐位进行加法运算,类似于我们小学时学习的竖式加法。在C语言中,...

    单片机正整数加法器

    单片机正整数加法器是嵌入式系统中常见的计算模块,它主要用于处理单片机内部或与外部传感器交互的数据。在这个项目中,我们使用C语言在Keil集成开发环境中编写了一个能够进行多个正整数相加的程序。C语言是单片机...

    php的大整数相加111

    ### 大整数加法的挑战 在标准的整型或浮点型变量中存储大整数是有限制的,因为它们有固定的大小限制。例如,在PHP中,整型(int)的大小受系统架构的影响,通常为32位或64位。当数字超出这个范围时,就会发生溢出,...

    C++堆栈实现超长整数加法

    在超长整数加法中,我们可以将每个数字位看作一个元素,逐位进行操作,通过堆栈来存储这些位。 首先,我们需要定义一个堆栈类来存放超长整数的每一位。这个类通常包含两个主要部分:一个数组用于存储数据,以及一个...

    作业长整数加法.zip

    - 长整数加法通常用于处理超过标准整型范围的大整数。在编译时实现长整数加法,需要对每个位进行逐位相加,考虑到进位的问题。 - 可以通过模板函数或类模板来实现这一过程,其中模板参数表示数组的长度,数组元素...

    题目:编写一个Python函数,实现两个整数的加法运算,并处理可能的溢出情况

    首先,我们要明确Python中的整数加法操作。在Python中,整数加法是非常直接的,只需要使用`+`运算符即可。例如,`add(1, 2)`会直接返回3。然而,当两个非常大的整数相加时,可能会导致溢出错误(OverflowError)。在...

    任意长整数加法课程设计

    《用C++语言解决任意长的整数加法问题》 在本次课程设计中,主要目标是使用C++编程语言实现一个能够处理任意长度整数加法的程序。设计者王博文在指导教师黄道昌的指导下,选择了数据结构中的双向循环链表作为主要的...

    汉诺塔问题,用递归法将一个整数n转换成字符串, 建立一个包含加法函数、减法函数的动态链接库文件和一个包含加法函数、减法函数的函数声明的头文件;编写、调试并运行一个MFC应用程序,该MFC应用程序调用了你所建立的动态链接库中的加法函数、减法函数。

    接下来,我们讨论如何建立包含加法函数和减法函数的动态链接库(DLL)。在C++中,首先需要创建一个头文件(如`math_functions.h`),其中声明函数原型,如: ```cpp #ifndef MATH_FUNCTIONS_H #define MATH_...

    单向链实现任意长的整数加法

    - **加法算法设计:** 针对大整数加法的特殊性,设计相应的算法逻辑。 - **输入与输出接口设计:** 设计友好的用户交互界面,确保用户可以方便地输入数据并查看结果。 #### 模块划分 - **输入模块:** 负责读取...

    asp ajax get 实现整数加法过程

    在这个例子中,我们将创建一个ASP文件(例如:getAjaxName.asp),来处理整数加法的逻辑。在`getAjaxName.asp`中,可以创建一个函数,接收两个参数(通过GET请求传递过来的整数),然后返回它们的和: ```vbscript ...

    C语言整数加法的webservice服务端和客户端代码

    【标题】"C语言整数加法的webservice服务端和客户端代码"涉及的核心知识点是Web服务(Web Service)和gSOAP工具的使用。Web服务是一种通过互联网进行通信的软件系统,它允许不同应用程序之间的数据交换。在这个项目...

    C++编写大整数加减法,乘法

    Visual C++环境下,这些操作可以通过编译和调试这些源文件(如`大整数加法.cpp`、`大整数减法.cpp`、`2389Bull Math(高精度乘法).cpp`)来验证其正确性。同时,为了提高性能,可以考虑使用已有的库,如GMP(GNU ...

    asp ajax post 实现整数加法过程

    "asp ajax post 实现整数加法过程"这个主题涉及了如何利用Ajax和POST方法在后台执行整数加法操作,并将结果实时返回到前端。下面将详细介绍这一过程。 首先,我们需要理解Ajax的基本工作原理。Ajax允许前端...

Global site tag (gtag.js) - Google Analytics