`
samuschen
  • 浏览: 399279 次
  • 性别: 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
分享到:
评论

相关推荐

    两个大数相加的运行程序

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

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

    字符串实现大数相加,首先两个数是用计算机的位数不能表示出来的,然后我们用字符数组进行操作!

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

    该资源是用C语言编写两个超过100位的大数相加

    js代码-两个大数相加

    js代码-两个大数相加

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

    几个小函数,为初学者提供一点点帮助,希望孩子们路越走越好。

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

    主要介绍了java编程实现两个大数相加代码示例,具有一定参考价值,需要的朋友可以了解下。

    大数相加.cpp

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

    用c++编写的大数相加

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

    用栈实现了大数相加(C++)

    用栈实现了两个大数相加,解决了long类型的越界问题,用于学习数据结构,C++实现的demo,内含源代码,可以运行。

    【c++】大数相加

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

    C++大数相加

    C++实现的大数相加,有很好的类的封装性

    实现大数相加功能

    当计算机的类型无法满足需要时,如50位的数字无法用double,int等类型显示时,只有自己写程序实现大数相加功能

    C++用类实现大数相加

    #include #include using namespace std; class ds { public: void equal(string x,string y,int...{//两个字符串一样长的时候; int flag =0; int i; int sum =0; int k = 0; int add[1000]; for(i=0;i;i++)

    大数相加实现

    输入包括两个数a和b,其中a和b的位数不超过1000位。

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

    Java 语言实现的大数相加程序。一个简单算法的实现。此前,在学校学习时,用C++编码解决过这个问题,当时还没写出来。

    实现2个大数(80位左右)相加

    实现2个80位左右的大数相加,暂时不支持负数,只支持正整数。

    两个大数之和

    两个 超大数 相加,之和。 用 c 语言 来编写。

    C语言-大数加法

    C语言 实现大数加法,在加法运算的时候假如有两个10000位数的两个数进行相加,那么用int long double型都装不下这么多位数,所以采用char数组来实现加法运算,解决精度的问题

    C语言编写的数学常用算法

    一些和数学有关的算法题目,比如两个大数相加,大数的阶乘

Global site tag (gtag.js) - Google Analytics