`

大整数加法

 
阅读更多
#include "StdAfx.h"
#include "subStr.h"
#include<iostream>
using namespace std;

#define MAX_LENTH 201


void add(int len,int *bigNumA,int *bigNumB){
//以下为执行加法累加,逐位相加;tag记录进位
		int i,tag=0;
		for(i=0;i<len;i++){
			bigNumA[i]+=bigNumB[i];
			if(tag){
				bigNumA[i]++;
				tag=0;
			}
			if(bigNumA[i]>=10){
				tag=1;
				bigNumA[i]-=10;
			}
		}
		if(tag) printf("1");
		for(i=len-1;i>=0;i--){
			printf("%d",bigNumA[i]);
		}
		printf("\n");
}
int main(){
	char numA[MAX_LENTH],numB[MAX_LENTH];
	int bigNumA[MAX_LENTH],bigNumB[MAX_LENTH];
	int i,j,pos,len,tag;
	while(scanf("%s %s",numA,numB)!=EOF){

		//注意两点,memset第三个参数是字节数,不能用strlen(bigNumA)。例如:
		//memset(bigNumA,0,strlen(bigNumA))是错误的。
		//bigNumA[MAX_LENTH]={0}这种将数组元素统一置为0的方式只有在声明的时候才能使用。
		//以下的“//”解开后是会出错的。
		memset(bigNumA,0,sizeof(bigNumA));
		memset(bigNumB,0,sizeof(bigNumB));
		//bigNumA[MAX_LENTH]={0};
		//bigNumB[MAX_LENTH]={0};

		//以下是将接收到的大整数numA和numB存储到bigNumA和bigNumB中,个位对应bigNumx[0],以此类推。

		pos=0;
		for(i=strlen(numA)-1;i>=0;i--){
			bigNumA[pos++]=numA[i]-'0';
		}
		pos=0;
		for(i=strlen(numB)-1;i>=0;i--){
			bigNumB[pos++]=numB[i]-'0';
		}

		if(strlen(numA)>strlen(numB))
		{
			len=strlen(numA);
		}else{
			len=strlen(numB);
		}
		add(len,bigNumA,bigNumB);
	}
	system("pause");
	return 0;
}

 

分享到:
评论

相关推荐

    数据结构(大整数加法)

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

    简单的js大整数加法

    以下是对"简单的js大整数加法"这个主题的详细解释。 首先,了解JavaScript中的数字类型。JavaScript的Number类型是双精度浮点数,遵循IEEE 754标准。这意味着它在存储大整数时会受到限制,超过9007199254740992(即...

    大整数加法 C++ 代码

    大整数加法 C++ 代码 大整数加法 C++ 代码 大整数加法 C++ 代码

    大整数加法 下载

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

    C/C++大整数加法

    C实现大整数加法 #include #include using namespace std;

    46、1168:大整数加法-2020-01-16(F).pdf

    46、1168:大整数加法-2020-01-16(F) 46、1168:大整数加法-2020-01-16(F) 46、1168:大整数加法-2020-01-16(F)

    大整数加法C语言程序

    本项目提供了一个使用C语言实现大整数加法的简单程序,它能够处理两个200位的整数进行加法运算,这对于初学者来说是一个很好的实践案例。 首先,我们来理解大整数的概念。在标准的C语言中,int类型通常只能表示32位...

    大整数加法 c++

    能够实现超出int类型表示的大整数的加法运算

    vc6.0实现大整数加法

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

    大整数加法(理论无限位)

    在计算机科学领域,大整数加法是一种处理超出标准数据类型范围的大整数值的运算方法。这通常涉及到处理任意长度的数字序列,可能是无限位数的理论概念,尤其是在理论计算和数学算法中。本文将深入探讨大整数加法的...

    链表 实现无限大整数加法

    该程序利用双向链表实现大整数加法,理论上说可以无限大。

    大整数加法 代码实现 

    华为上机试题,主要是字符串处理,但细节太多,所以下来重新整理。 del_sub_str.cpp 源码实现 从字符串中左匹配查找一子串,统计数目并反回删除子串后的结果。...add.cpp 实现两个大整数的加法,包括带-号的数相加。

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

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

    自己实现超大整数加法运算

    这篇博客“自己实现超大整数加法运算”探讨的就是如何编写代码来实现这种运算。 首先,我们需要了解超大整数的基本概念。在Java或其他编程语言中,标准的数据类型如int或long无法表示超出一定范围的数值。为了处理...

    算法-大整数加法(信息学奥赛一本通-T1168)(包含源程序).rar

    《算法-大整数加法(信息学奥赛一本通-T1168)》是针对信息学竞赛中常见问题的一项重要技术,主要探讨如何处理和实现大整数的加法运算。在计算机科学和信息学领域,常规的整型数据类型往往无法表示非常大的整数,...

    大整数的加法 C语言 链表

    为了解决大整数加法的问题,本篇介绍一种基于C语言的实现方案,该方案利用了链表来存储大整数,并通过链表操作实现了两个大整数之间的加法运算。这种方法不仅能够支持任意大小的整数相加,而且还可以扩展到其他运算...

    C++数据结构课设(大整数加法)

    C++数据结构课设(大整数加法)

    16进制大整数加法.cpp

    16进制大整数加法.cpp

Global site tag (gtag.js) - Google Analytics