两个大数相加 ----Javascrit 实现

(function(){

var addLarge = function(n1,n2){
var over = 0;
var ret = "";

var len = Math.min(n1.length,n2.length);
var sln1 = n1.substr(n1.length - len,n1.length );
var sln2 = n2.substr(n2.length - len,n2.length );

for(var i = len;i > 0; i--)
{

var di = parseInt(sln1[i-1]);
var dj = parseInt(sln2[i-1]);

ret = (over + di + dj)>= 10 ? ((over + di + dj) - 10 + ret) : ((over+di+dj) + ret);

over = ((over + di + dj) /10 ) | 0;

}

if(n1.length != n2.length)
{
if(n1.length > n2.length){
ret = addLarge(n1.substr(0,n1.length-len),over.toString()) + ret;
}
else{
ret = addLarge(n2.substr(0,n2.length - len),over.toString()) + ret;
}

return ret;
}

else{
if(over > 0)
ret = over + ret;

return ret;
}

};

var l1 = "9999999999999";
var l2 = "1111111111111";
var r = addLarge(l1,l2);
console.log(r);

})();

两个大数相加 ----Javascrit 实现,布布扣,bubuko.com

时间: 2024-12-06 06:43:25

两个大数相加 ----Javascrit 实现的相关文章

iOS中计算两个大数相加算法(OC实现)

我们知道计算机的数据类型不同,所能表示的数据量级也不相同,比如: unsigned int : 0-4294967295   int : -2147483648-2147483647 unsigned long : 0-4294967295long :  -2147483648-2147483647long long : -9223372036854775808 ~ 9223372036854775807unsigned long long : 0 ~ 18446744073709551615

两个大数相加

通过字符串数组实现两个大数相加 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 //大数的最大位数 6 #define MAX 100 7 8 //和的最大位数 9 #define N 101 10 11 int main(int argc,char *argv[]) 12 { 13 int i;//工作指针 14 int num1, num2, num3;//记录a,b两数的位数以及

C语言使用栈实现String类型的两个大数相加

要开始找工作了,记录下学习的关于数据结构的应用~~从栈开始~~ 栈和指针的应用~~~ 实现String类型的两个大数相加 主要思想是通过C语言的栈来实现,栈是后进先出的特点,因此很适合做这类计算.建立四个栈,分别按字符串字符先后顺序入栈大数的整数部分和小数部分,然后先计算小数部分的,由于小数部分是高位对齐,因此一直出栈最长小数栈的字符并进入小数结果的栈,小数位数对齐后,两个小数栈出栈进行相加.然后进行整数栈相加,由于整数部分是按低位对齐,因此直接出栈相加即可,将每位相加结果入结果整数栈.比如字符

栈实现两个大数相加

import java.util.Scanner; import java.util.Stack; public class JavaDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /** * 第一个大数入栈 */ System.out.println("输入第一个大数:"); String firstNum = scanner.nextLine(); I

数据结构(java语言描述)顺序栈的使用(两个大数相加)

利用http://www.cnblogs.com/xleer/p/5289661.html中对顺序栈以及栈的进本方法的定义,实现超过整数上限的两个数的加法计算. 算法: package stack;/********************************************************************** * @author sch ********利用栈,计算两个大数的和.大数的值超过int存储的范围******************************

HDU 1002 A + B Problem II(两个大数相加)

详细题目点击:http://acm.hdu.edu.cn/showproblem.php?pid=1002 Problem Description I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B. Input The first line of the input contains an integer T(1<=T<=20)

[ACM] ZOJ Martian Addition (20进制的两个大数相加)

Martian Addition Time Limit: 2 Seconds      Memory Limit: 65536 KB   In the 22nd Century, scientists have discovered intelligent residents live on the Mars. Martians are very fond of mathematics. Every year, they would hold an Arithmetic Contest on M

java-两个大数相加

题目要求:用字符串模拟两个大数相加. 一.使用BigInteger类.BigDecimal类 public static void main(String[] args) { String a="8888899999999888";  String b="88888888888888";  String str=new BigInteger(a).add(new BigInteger(b)).toString();  System.out.println(str);

UVALive 6270 Edge Case(找规律,大数相加)

转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 找规律,前两个数的和等于后一个数的值: 其实就是大菲波数: 代码如下: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #include<cstdio> #include<cst