`
dotcpp
  • 浏览: 60193 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

c++大数加法【原】

阅读更多
/*********************************
*本例实现大整数相加
*作者:yubaolee
*日期:2010-5-30
**********************************/

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main()
{
   string str1;
   string str2;
   while(cin>>str1>>str2)
   {
       int nLen1, nLen2, nLen;
	   nLen1 = str1.length();
	   nLen2 = str2.length();
	   nLen = nLen1 > nLen2 ? nLen1 : nLen2;
	   
	   reverse(str1.begin(), str1.end());
	   reverse(str2.begin(), str2.end());
	   
	   //高位补零
	   if (nLen > nLen1) str1.append(nLen - nLen1, '0'); 
	   if (nLen > nLen2) str2.append(nLen - nLen2, '0');
	   
	   int temp = 0;   //进位数目
	   int i = 0;
	   string strResult;    //存储结果
	   
	   while (i < nLen)
	   {
	       if(str1[i] -0x30 + str2[i] + temp > '9')
		   {
			   strResult.append(1, str1[i] + str2[i] - '9' - 1 + temp);
			   temp = 1;
		   }
		   else
		   {
		       strResult.append(1, str1[i] + str2[i] - '0' + temp);
			   temp = 0;
		   }
		   i++;
	   }
	   
	   if(temp == 1)
	      strResult.append(1, '1');
	   reverse(strResult.begin(), strResult.end());
	   cout<<strResult<<endl;
   }
   return 0;
}

 
分享到:
评论

相关推荐

    C++单链表实现大数加法

    C++单链表实现大数加法 大数加法是一种常见的算法问题,特别是在C++中实现大数加法时需要考虑到数字的位数和溢出问题。使用单链表来实现大数加法可以解决这个问题。本文将详细介绍如何使用C++单链表实现大数加法。 ...

    C++大数相加减

    这个项目"BigNumberAdd"显然是关于如何用C++来实现大数加法和减法的示例。 首先,我们要创建一个表示大数的数据结构。一种常见的方法是使用字符串,因为字符串可以存储任意长度的数字,每个字符对应一个数字位。...

    c++大数加法乘法源码

    以下是对“c++大数加法乘法源码”主题的详细解释: 首先,我们需要了解大数数据结构。一种常见的方法是使用数组存储每个位,从最低位到最高位。例如,我们可以用一个整数数组`int digits[]`来表示大数,数组中的每...

    gaojingdu.rar_c 大数加法_c++大数除法_大数 加 减 乘 除_大数算法_高精度

    在标题“gaojingdu.rar_c 大数加法_c++大数除法_大数 加 减 乘 除_大数算法_高精度”中,我们关注的是用C语言和C++实现的高精度算法,特别是大数的加法、减法、乘法和除法。这些操作是基础数学运算,但在计算机中...

    大数模板(C++)大数加法、大数乘法、大数除法

    用C++写的重载的大数模板 大数加法、大数乘法、大数除法、大数减法 带有注释

    用C++实现了大数阶乘及大数加法

    本项目中,开发者用C++实现了大数阶乘和大数加法,虽然大数乘法未成功,但我们可以深入探讨这两个功能的实现原理。 ### 大数阶乘 大数阶乘的实现通常涉及到动态规划和链表数据结构。在C++中,由于没有内置的大数...

    大数加法程序

    大数加法程序 大数加法程序 大数加法程序 C,C++

    大数加法与乘法c++实现

    **大数加法** 大数的加法可以使用类似于小学数学的方法,即从低位到高位逐位相加,并处理进位。为了实现这个算法,我们可以编写一个函数,接收两个大数数组和一个结果数组作为参数。首先,将两个输入数组的长度调整...

    c++大数运算算法实现_源代码 原创

    大数加法的实现通常遵循类似于我们小学时学习的竖式加法。首先,从最低位开始逐位相加,如果超过9,则需要进位。在C++中,这可能涉及对两个大数的向量迭代,同时考虑进位。对于溢出的情况,我们需要将进位值传递到...

    C++大数计算简单实例测试

    本项目“C++大数计算简单实例测试”提供了一个基本的解决方案,用于进行大数的算术运算,如加法、减法、乘法等。以下将详细介绍该实例所涵盖的C++知识点。 1. **自定义数据结构**: 在C++中,由于没有内置的大数...

    简单的C++ 大数类

    这个"简单的C++大数类"是作者自定义实现的一个C++库,专门用于处理大数运算。以下是对这个类的一些关键知识点的详细说明: 1. **大数表示**:大数类通常使用数组或链表存储多位数字,每个元素代表一个位。在这个C++...

    大数类c++大数类

    大数类C++实现详解 大数类是一个重要的数据结构在计算机科学中,它可以用来表示非常大的整数,通常超过了机器字长的限制。在C++中,可以通过重载运算符和实现自定义的整数类来实现大数类。 在这个示例代码中,我们...

    C++大数问题

    1. **大数加法**: 大数相加通常采用类似于小学生做加法的方式,从个位开始逐位相加,如果某一位的和超过了10,则需要向高位进位。在C++中,可以使用字符串或自定义整数数组来存储大数,然后遍历每个位进行加法操作...

    大数的加法(只有加法)

    以下将详细讨论大数加法的原理、实现方法以及可能遇到的问题。 首先,大数加法的基本原理类似于我们小时候学习的竖式加法。每个数字由多个位组成,我们逐位进行相加,并处理进位。具体步骤如下: 1. 初始化:根据...

    C++使用string的大数加法运算(1)

    C++使用string的大数加法运算 C++使用string的大数加法运算是一种常见的编程技术,特别是在大规模数据处理和科学计算领域中。本文将详细介绍如何使用C++的string类来实现大数的加法运算。 大数加法运算的定义 ----...

    C++ 大数运算 加减乘除

    在C++编程语言中,处理大数(超过标准整型或浮点型所能表示范围的数值)是一项挑战,因为内置的数据类型无法满足这样的需求。针对这种情况,开发者通常需要设计自定义的数据结构和算法来实现大数运算,如加法、减法...

    c++编写的大数运算

    本项目标题为“c++编写的大数运算”,它关注的是如何使用C++进行大数的加法、减法、乘法和除法等基本操作。描述中提到,这个实现是可视化的,并且能处理40位以内的大数,理论上可以扩展到更大的位数。 首先,我们要...

    C++实现的大数减法

    C++作为一种强大的编程语言,提供了多种方式来实现大数运算,包括加法、减法、乘法等。本文将详细解析一个基于C++实现的大数减法算法。 ### C++实现大数减法的关键知识点 #### 1. 数据存储与转换 在C++中,由于...

    c++实现大数计算问题

    以下是一些关于C++实现大数计算的关键知识点: 1. **自定义大数类(BigInt)**:通常,我们会创建一个类(如BigInt)来存储和操作大数。这个类通常会包含一个整数数组来保存每一位数字,并提供相应的运算符重载(如...

    [Source Code]C++大数计算

    总之,`stringCalculate`提供的C++大数计算功能,是通过字符串或其他高效数据结构来存储和处理大整数,实现了大数的加、减、乘、除等基本运算。理解并运用这些算法和技巧,对于进行高级数值计算、密码学或游戏开发等...

Global site tag (gtag.js) - Google Analytics