`
samuschen
  • 浏览: 405688 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

(两个大数相加)

 
阅读更多

收集面试题(十一)(两个大数相加)

大数加法

Java代码  收藏代码
  1. /**  
  2.  * @param args  
  3.  */   
  4. public   static   void  main(String[] args) {  
  5.     BigInt b = new  BigInt();  
  6.     b.add("999999999999444599999999999999999" "99223333333223455559" );  
  7. }  
  8.   
  9. public  String add(String a, String b) {  
  10.     // 检查输入   
  11.     if  (!a.matches( "\\d+" ) || !a.matches( "\\d+" )) {  
  12.         return   null ;  
  13.     }  
  14.     final   int  BASE =  10 ; // 10进制   
  15.     int  lenA = a.length(); // 加数的长度   
  16.     int  lenB = b.length(); // 被加数的长度   
  17.     int  maxLen, partialSum, carry =  0 ; // 大数的长度,和,进位   
  18.     maxLen = (lenA > lenB) ? lenA : lenB;  
  19.     StringBuffer sum = new  StringBuffer();  
  20.     int  temA, temB =  0 ;  
  21.     for  ( int  i =  0 ; i < maxLen; i++) {  
  22.         if  (i >= lenA) {  
  23.             temA = 0 ;  
  24.         } else  {  
  25.             temA = Integer.valueOf(a.charAt(lenA - i - 1 ) -  48 );  
  26.         }  
  27.         if  (i >= lenB) {  
  28.             temB = 0 ;  
  29.         } else  {  
  30.             temB = Integer.valueOf(b.charAt(lenB - i - 1 ) -  48 );  
  31.         }  
  32.         partialSum = temA + temB + carry;  
  33.         carry = partialSum / BASE;  
  34.         sum.append(partialSum % BASE);  
  35.     }  
  36.     if  (carry ==  1 )  
  37.         sum.append(carry);  
  38.     System.out.println(a + " + "  + b +  " = "  + sum.reverse().toString());  
  39.     return  sum.reverse().toString();  

ASCII:
0:48
A:65
a:97
分享到:
评论

相关推荐

    两个大数相加的运行程序

    采用单链表的做的,以一万分界点,每个节点有四位数

    两个大数相加-字符串实现

    2. 对齐:如果两个大数的位数不一致,可以在较短的大数前面添加零,使得两个大数的位数相同,以便进行逐位相加。 3. 逐位相加:从最低位开始,对两个大数的对应位进行相加,同时考虑进位。每一位的计算遵循小学数学...

    C++ 两个大数相加.7z

    在给定的"两个大数相加"的场景中,我们可以预期包含的代码将演示如何实现这个功能。下面我们将深入探讨相关的C++知识点。 首先,我们要理解C++的标准库并不直接支持大数运算。因此,我们需要自己设计一个数据结构来...

    用C语言编写两个大数相加

    - 初始化:创建两个数组分别存储两个大数,以及一个数组用于存储结果。 - 搭配进位:从低位到高位,逐位进行加法运算,同时考虑当前位的进位。对于每一位,我们只需处理两个数组对应位置的元素加上上一位的进位值...

    js代码-两个大数相加

    在给定的`js代码-两个大数相加`主题中,我们可以探讨两种主要的方式来实现大数相加: 1. 字符串处理: 由于JavaScript的字符串可以无限长度,我们可以通过将大数转换为字符串,然后逐位相加来实现大数的加法。具体...

    C++大数相加减

    2. 检查两个大数的长度,如果长度不同,将较短的数在其前面补零,以确保它们具有相同的长度。 3. 遍历两个字符串,从低位到高位逐位相加,同时考虑当前位和上一位的进位。 4. 如果在某一位上相加后结果超过9,需要...

    java编程实现两个大数相加代码示例

    Java编程实现两个大数相加代码示例 在Java编程中,实现两个大数相加是一项常见的操作,特别是在高精度计算中。通常情况下,实现大数运算是通过BigInteger和BigDecimal两种方法。这两种方法分别表示不可变的任意精度...

    大数运算 大数相加 大数相乘

    2. 检查两个大数的长度,如果一个数的位数多于另一个,可以添加前导零以保持长度一致。 3. 遍历两个数组,从低位到高位,对对应位进行相加,同时考虑进位。 4. 如果有进位,将其加到下一位的和中。 5. 最后,检查...

    java大数相加

    `sum`变量现在存储了两个大数相加的结果,即"111111111111111111100"。如果需要将结果输出为字符串,可以调用`toString()`方法: ```java System.out.println("Sum: " + sum.toString()); ``` 除了基本的加法,`...

    大数相加通用模版

    该方法将两个大数(以字符串形式存储)作为输入参数,返回它们的和(同样以字符串形式)。首先,它会判断两个数哪个更长,并将较短的数附加到较长数的末尾,然后逐位进行加法运算。在每一步中,如果当前位的和超过9...

    大数相加.cpp

    该文件为C/C++课程对于大数相加问题的解决, /*大数相加*/ /*在一般语言中对整型数都有个最大限制, 先给出两个超出正常范围的十进制数 对其进行求和,带进位的加法*/

    用c++编写的大数相加

    用c++编写的大数相加,可以实现任意两个长度的大数相加求和。

    数据结构课设一:链表实现大数相加

    5. 最后,结果链表就代表了两个大数的和,可以以适当的形式输出,如转化为字符串。 在这个VS2017项目中,`mytest1.sln`是解决方案文件,包含了整个项目的配置信息。`.vs`文件夹是Visual Studio的工作区文件,包含了...

    大数相乘大数相加大数阶乘代码

    这里我们关注的焦点是大数相乘、大数相加以及大数阶乘的算法实现,这些都是计算密集型任务,尤其是在处理极端数值时。下面将详细介绍这三个知识点,并提供一个使用C++实现的示例。 1. **大数相乘**: 大数相乘通常...

    c++实现大数相加

    大数相加是指将两个或多个大整数相加,得到一个新的大整数。这里的“大整数”是指超出C++标准整数类型范围的整数。 C++中的大数实现 在C++中,我们可以使用字符串来表示大整数,因为字符串可以存储任意长度的数字...

    C++实现大数相加

    1. **初始化**:将两个大数(以字符串形式)反转,这样我们可以从低位开始处理。反转的原因是C++字符串的索引是从0开始的,这样可以避免从高位开始遍历时的负索引问题。 2. **遍历**:从每一位开始(从末尾开始,即...

    【c++】大数相加

    使用string类型实现大数...先将两个加数存为String类型,再从两个加数的末尾开始,一个数一个数的相加,跟做普通加法一个原理,只是这里需要注意的是,两个加数的类型为字符串,需要相应的转换才能相加,在代码有描述。

    实现大数相加功能

    3. **比较大数**:在相加前,可能需要比较两个大数的大小,以便确定相加时的高位。可以从前向后逐位比较,直到找到不同的位或者到达数组末尾。 4. **大数相加**:这是一个关键步骤,可以采用类似于小学数学中的竖式...

    大数相加jar包(一个简单算法的实现)

    描述中提到的“Java语言实现的大数相加程序”,意味着这个程序采用了特定的算法来处理两个大数的加法。简单算法可能是指逐位相加,类似于我们手工计算的方式,即从低位到高位,每两位进行相加,如有进位则向上一位...

Global site tag (gtag.js) - Google Analytics